<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">{-
(c) Galois, 2006
(c) University of Glasgow, 2007
-}</span><span>
</span><span id="line-5"></span><span>
</span><span id="line-6"></span><span class="hs-pragma">{-# LANGUAGE NondecreasingIndentation, RecordWildCards #-}</span><span>
</span><span id="line-7"></span><span class="hs-pragma">{-# LANGUAGE ViewPatterns #-}</span><span>
</span><span id="line-8"></span><span class="hs-pragma">{-# LANGUAGE TypeFamilies #-}</span><span>
</span><span id="line-9"></span><span class="hs-pragma">{-# LANGUAGE DeriveFunctor #-}</span><span>
</span><span id="line-10"></span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# OPTIONS_GHC -Wno-incomplete-record-updates #-}</span><span>
</span><span id="line-12"></span><span>
</span><span id="line-13"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.HsToCore.Coverage</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTicksToBinds"><span class="hs-identifier">addTicksToBinds</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#hpcInitCode"><span class="hs-identifier">hpcInitCode</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-14"></span><span>
</span><span id="line-15"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span>
</span><span id="line-16"></span><span>
</span><span id="line-17"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="GHC.Runtime.Interpreter.html"><span class="hs-identifier">GHC.Runtime.Interpreter</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">GHCi</span></span><span>
</span><span id="line-18"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghci/src/GHCi.RemoteTypes.html#"><span class="hs-identifier">GHCi.RemoteTypes</span></a></span><span>
</span><span id="line-19"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../array/src/Data.Array.html#"><span class="hs-identifier">Data.Array</span></a></span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html"><span class="hs-identifier">GHC.ByteCode.Types</span></a></span><span>
</span><span id="line-21"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.CCS.html#"><span class="hs-identifier">GHC.Stack.CCS</span></a></span><span>
</span><span id="line-22"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.Type.html"><span class="hs-identifier">GHC.Core.Type</span></a></span><span>
</span><span id="line-23"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.html"><span class="hs-identifier">GHC.Hs</span></a></span><span>
</span><span id="line-24"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.html"><span class="hs-identifier">GHC.Unit</span></a></span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Outputable</span></span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html"><span class="hs-identifier">GHC.Driver.Session</span></a></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.ConLike.html"><span class="hs-identifier">GHC.Core.ConLike</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Error.html"><span class="hs-identifier">GHC.Utils.Error</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Set.html"><span class="hs-identifier">GHC.Types.Name.Set</span></a></span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Name.Set.html#FreeVars"><span class="hs-identifier">FreeVars</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html"><span class="hs-identifier">GHC.Data.Bag</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.CostCentre.html"><span class="hs-identifier">GHC.Types.CostCentre</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.CostCentre.State.html"><span class="hs-identifier">GHC.Types.CostCentre.State</span></a></span><span>
</span><span id="line-36"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.html"><span class="hs-identifier">GHC.Core</span></a></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Id.html"><span class="hs-identifier">GHC.Types.Id</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.Set.html"><span class="hs-identifier">GHC.Types.Var.Set</span></a></span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html"><span class="hs-identifier">GHC.Driver.Types</span></a></span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.TyCon.html"><span class="hs-identifier">GHC.Core.TyCon</span></a></span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html"><span class="hs-identifier">GHC.Types.Basic</span></a></span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Monad.html"><span class="hs-identifier">GHC.Utils.Monad</span></a></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.Maybe.html"><span class="hs-identifier">GHC.Data.Maybe</span></a></span><span>
</span><span id="line-46"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html"><span class="hs-identifier">GHC.Cmm.CLabel</span></a></span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-48"></span><span>
</span><span id="line-49"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../time/src/Data.Time.html#"><span class="hs-identifier">Data.Time</span></a></span><span>
</span><span id="line-50"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../directory/src/System.Directory.html#"><span class="hs-identifier">System.Directory</span></a></span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#"><span class="hs-identifier">Trace.Hpc.Mix</span></a></span><span>
</span><span id="line-53"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Util.html#"><span class="hs-identifier">Trace.Hpc.Util</span></a></span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.html#"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">BS</span></span><span>
</span><span id="line-56"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.html#"><span class="hs-identifier">Data.Set</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier">Set</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-57"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.html#"><span class="hs-identifier">Data.Set</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Set</span></span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
*              The main function: addTicksToBinds
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-66"></span><span>
</span><span id="line-67"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTicksToBinds"><span class="hs-identifier hs-type">addTicksToBinds</span></a></span><span>
</span><span id="line-68"></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HscEnv"><span class="hs-identifier hs-type">HscEnv</span></a></span><span>
</span><span id="line-69"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span>
</span><span id="line-70"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Module.Location.html#ModLocation"><span class="hs-identifier hs-type">ModLocation</span></a></span><span>          </span><span class="hs-comment">-- ... off the current module</span><span>
</span><span id="line-71"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Name.Set.html#NameSet"><span class="hs-identifier hs-type">NameSet</span></a></span><span>              </span><span class="hs-comment">-- Exported Ids.  When we call addTicksToBinds,</span><span>
</span><span id="line-72"></span><span>                                </span><span class="hs-comment">-- isExportedId doesn't work yet (the desugarer</span><span>
</span><span id="line-73"></span><span>                                </span><span class="hs-comment">-- hasn't set it), so we have to work from this set.</span><span>
</span><span id="line-74"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.TyCon.html#TyCon"><span class="hs-identifier hs-type">TyCon</span></a></span><span class="hs-special">]</span><span>              </span><span class="hs-comment">-- Type constructor in this module</span><span>
</span><span id="line-75"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-76"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HpcInfo"><span class="hs-identifier hs-type">HpcInfo</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html#ModBreaks"><span class="hs-identifier hs-type">ModBreaks</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span id="addTicksToBinds"><span class="annot"><span class="annottext">addTicksToBinds :: HscEnv
-&gt; Module
-&gt; ModLocation
-&gt; NameSet
-&gt; [TyCon]
-&gt; LHsBinds GhcTc
-&gt; IO (LHsBinds GhcTc, HpcInfo, Maybe ModBreaks)
</span><a href="GHC.HsToCore.Coverage.html#addTicksToBinds"><span class="hs-identifier hs-var hs-var">addTicksToBinds</span></a></span></span><span> </span><span id="local-6989586621681001903"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001903"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span id="local-6989586621681001902"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001902"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span id="local-6989586621681001901"><span class="annot"><span class="annottext">ModLocation
</span><a href="#local-6989586621681001901"><span class="hs-identifier hs-var">mod_loc</span></a></span></span><span> </span><span id="local-6989586621681001900"><span class="annot"><span class="annottext">NameSet
</span><a href="#local-6989586621681001900"><span class="hs-identifier hs-var">exports</span></a></span></span><span> </span><span id="local-6989586621681001899"><span class="annot"><span class="annottext">[TyCon]
</span><a href="#local-6989586621681001899"><span class="hs-identifier hs-var">tyCons</span></a></span></span><span> </span><span id="local-6989586621681001898"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001898"><span class="hs-identifier hs-var">binds</span></a></span></span><span>
</span><span id="line-79"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001897"><span class="annot"><span class="annottext">dflags :: DynFlags
</span><a href="#local-6989586621681001897"><span class="hs-identifier hs-var hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; DynFlags
</span><a href="GHC.Driver.Types.html#hsc_dflags"><span class="hs-identifier hs-var hs-var">hsc_dflags</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001903"><span class="hs-identifier hs-var">hsc_env</span></a></span><span>
</span><span id="line-80"></span><span>        </span><span id="local-6989586621681001895"><span class="annot"><span class="annottext">passes :: [TickishType]
</span><a href="#local-6989586621681001895"><span class="hs-identifier hs-var hs-var">passes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; [TickishType]
</span><a href="GHC.HsToCore.Coverage.html#coveragePasses"><span class="hs-identifier hs-var">coveragePasses</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001897"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[TickishType] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[TickishType]
</span><a href="#local-6989586621681001895"><span class="hs-identifier hs-var">passes</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-81"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681001891"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001891"><span class="hs-identifier hs-var">orig_file</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ModLocation -&gt; Maybe FilePath
</span><a href="GHC.Unit.Module.Location.html#ml_hs_file"><span class="hs-identifier hs-var hs-var">ml_hs_file</span></a></span><span> </span><span class="annot"><span class="annottext">ModLocation
</span><a href="#local-6989586621681001901"><span class="hs-identifier hs-var">mod_loc</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span>     </span><span class="hs-keyword">let</span><span>  </span><span id="local-6989586621681001889"><span class="annot"><span class="annottext">orig_file2 :: FilePath
</span><a href="#local-6989586621681001889"><span class="hs-identifier hs-var hs-var">orig_file2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc -&gt; FilePath -&gt; FilePath
</span><a href="GHC.HsToCore.Coverage.html#guessSourceFile"><span class="hs-identifier hs-var">guessSourceFile</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001898"><span class="hs-identifier hs-var">binds</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001891"><span class="hs-identifier hs-var">orig_file</span></a></span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span>          </span><span id="local-6989586621681001887"><span class="annot"><span class="annottext">tickPass :: TickishType
-&gt; (LHsBinds GhcTc, TickTransState)
-&gt; (LHsBinds GhcTc, TickTransState)
</span><a href="#local-6989586621681001887"><span class="hs-identifier hs-var hs-var">tickPass</span></a></span></span><span> </span><span id="local-6989586621681001886"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001886"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001885"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001885"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681001884"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001884"><span class="hs-identifier hs-var">st</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-86"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001883"><span class="annot"><span class="annottext">env :: TickTransEnv
</span><a href="#local-6989586621681001883"><span class="hs-identifier hs-var hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TTE :: FastString
-&gt; TickDensity
-&gt; DynFlags
-&gt; NameSet
-&gt; VarSet
-&gt; [FilePath]
-&gt; VarSet
-&gt; Set RealSrcSpan
-&gt; Module
-&gt; TickishType
-&gt; TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#TTE"><span class="hs-identifier hs-type">TTE</span></a></span><span>
</span><span id="line-87"></span><span>                      </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fileName :: FastString
</span><a href="GHC.HsToCore.Coverage.html#fileName"><span class="hs-identifier hs-var">fileName</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastString"><span class="hs-identifier hs-var">mkFastString</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001889"><span class="hs-identifier hs-var">orig_file2</span></a></span><span>
</span><span id="line-88"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">declPath :: [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var">declPath</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-89"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">tte_dflags :: DynFlags
</span><a href="GHC.HsToCore.Coverage.html#tte_dflags"><span class="hs-identifier hs-var">tte_dflags</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001897"><span class="hs-identifier hs-var">dflags</span></a></span><span>
</span><span id="line-90"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">exports :: NameSet
</span><a href="GHC.HsToCore.Coverage.html#exports"><span class="hs-identifier hs-var">exports</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameSet
</span><a href="#local-6989586621681001900"><span class="hs-identifier hs-var">exports</span></a></span><span>
</span><span id="line-91"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">inlines :: VarSet
</span><a href="GHC.HsToCore.Coverage.html#inlines"><span class="hs-identifier hs-var">inlines</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">VarSet
</span><a href="GHC.Types.Var.Set.html#emptyVarSet"><span class="hs-identifier hs-var">emptyVarSet</span></a></span><span>
</span><span id="line-92"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">inScope :: VarSet
</span><a href="GHC.HsToCore.Coverage.html#inScope"><span class="hs-identifier hs-var">inScope</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">VarSet
</span><a href="GHC.Types.Var.Set.html#emptyVarSet"><span class="hs-identifier hs-var">emptyVarSet</span></a></span><span>
</span><span id="line-93"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">blackList :: Set RealSrcSpan
</span><a href="GHC.HsToCore.Coverage.html#blackList"><span class="hs-identifier hs-var">blackList</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[RealSrcSpan] -&gt; Set RealSrcSpan
forall a. Ord a =&gt; [a] -&gt; Set a
</span><a href="../../containers/src/Data.Set.Internal.html#fromList"><span class="hs-identifier hs-var">Set.fromList</span></a></span><span> </span><span class="annot"><span class="annottext">([RealSrcSpan] -&gt; Set RealSrcSpan)
-&gt; [RealSrcSpan] -&gt; Set RealSrcSpan
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-94"></span><span>                                       </span><span class="annot"><span class="annottext">(TyCon -&gt; Maybe RealSrcSpan) -&gt; [TyCon] -&gt; [RealSrcSpan]
forall a b. (a -&gt; Maybe b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/Data.Maybe.html#mapMaybe"><span class="hs-identifier hs-var">mapMaybe</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621681001870"><span class="annot"><span class="annottext">TyCon
</span><a href="#local-6989586621681001870"><span class="hs-identifier hs-var">tyCon</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Name -&gt; SrcSpan
forall a. NamedThing a =&gt; a -&gt; SrcSpan
</span><a href="GHC.Types.Name.html#getSrcSpan"><span class="hs-identifier hs-var">getSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TyCon -&gt; Name
</span><a href="GHC.Core.TyCon.html#tyConName"><span class="hs-identifier hs-var hs-var">tyConName</span></a></span><span> </span><span class="annot"><span class="annottext">TyCon
</span><a href="#local-6989586621681001870"><span class="hs-identifier hs-var">tyCon</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-95"></span><span>                                                             </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621681001866"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681001866"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Maybe RealSrcSpan
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681001866"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-96"></span><span>                                                             </span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe RealSrcSpan
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-97"></span><span>                                                </span><span class="annot"><span class="annottext">[TyCon]
</span><a href="#local-6989586621681001899"><span class="hs-identifier hs-var">tyCons</span></a></span><span>
</span><span id="line-98"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">density :: TickDensity
</span><a href="GHC.HsToCore.Coverage.html#density"><span class="hs-identifier hs-var">density</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickishType -&gt; DynFlags -&gt; TickDensity
</span><a href="GHC.HsToCore.Coverage.html#mkDensity"><span class="hs-identifier hs-var">mkDensity</span></a></span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001886"><span class="hs-identifier hs-var">tickish</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001897"><span class="hs-identifier hs-var">dflags</span></a></span><span>
</span><span id="line-99"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">this_mod :: Module
</span><a href="GHC.HsToCore.Coverage.html#this_mod"><span class="hs-identifier hs-var">this_mod</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001902"><span class="hs-identifier hs-var">mod</span></a></span><span>
</span><span id="line-100"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">tickishType :: TickishType
</span><a href="GHC.HsToCore.Coverage.html#tickishType"><span class="hs-identifier hs-var">tickishType</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001886"><span class="hs-identifier hs-var">tickish</span></a></span><span>
</span><span id="line-101"></span><span>                      </span><span class="hs-special">}</span><span>
</span><span id="line-102"></span><span>                </span><span class="hs-special">(</span><span id="local-6989586621681001860"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001860"><span class="hs-identifier hs-var">binds'</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">FreeVars
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span id="local-6989586621681001859"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001859"><span class="hs-identifier hs-var">st'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TM (LHsBinds GhcTc)
-&gt; TickTransEnv
-&gt; TickTransState
-&gt; (LHsBinds GhcTc, FreeVars, TickTransState)
forall a.
TM a
-&gt; TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="GHC.HsToCore.Coverage.html#unTM"><span class="hs-identifier hs-var hs-var">unTM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc -&gt; TM (LHsBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsBinds"><span class="hs-identifier hs-var">addTickLHsBinds</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001885"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001883"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001884"><span class="hs-identifier hs-var">st</span></a></span><span>
</span><span id="line-103"></span><span>            </span><span class="hs-keyword">in</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001860"><span class="hs-identifier hs-var">binds'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001859"><span class="hs-identifier hs-var">st'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-104"></span><span>
</span><span id="line-105"></span><span>          </span><span id="local-6989586621681001856"><span class="annot"><span class="annottext">initState :: TickTransState
</span><a href="#local-6989586621681001856"><span class="hs-identifier hs-var hs-var">initState</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TT :: Int -&gt; [MixEntry_] -&gt; CostCentreState -&gt; TickTransState
</span><a href="GHC.HsToCore.Coverage.html#TT"><span class="hs-identifier hs-type">TT</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">tickBoxCount :: Int
</span><a href="GHC.HsToCore.Coverage.html#tickBoxCount"><span class="hs-identifier hs-var">tickBoxCount</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-106"></span><span>                         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mixEntries :: [MixEntry_]
</span><a href="GHC.HsToCore.Coverage.html#mixEntries"><span class="hs-identifier hs-var">mixEntries</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-107"></span><span>                         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ccIndices :: CostCentreState
</span><a href="GHC.HsToCore.Coverage.html#ccIndices"><span class="hs-identifier hs-var">ccIndices</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CostCentreState
</span><a href="GHC.Types.CostCentre.State.html#newCostCentreState"><span class="hs-identifier hs-var">newCostCentreState</span></a></span><span>
</span><span id="line-108"></span><span>                         </span><span class="hs-special">}</span><span>
</span><span id="line-109"></span><span>
</span><span id="line-110"></span><span>          </span><span class="hs-special">(</span><span id="local-6989586621681001850"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001850"><span class="hs-identifier hs-var">binds1</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681001849"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001849"><span class="hs-identifier hs-var">st</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickishType
 -&gt; (LHsBinds GhcTc, TickTransState)
 -&gt; (LHsBinds GhcTc, TickTransState))
-&gt; (LHsBinds GhcTc, TickTransState)
-&gt; [TickishType]
-&gt; (LHsBinds GhcTc, TickTransState)
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">TickishType
-&gt; (LHsBinds GhcTc, TickTransState)
-&gt; (LHsBinds GhcTc, TickTransState)
</span><a href="#local-6989586621681001887"><span class="hs-identifier hs-var">tickPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001898"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001856"><span class="hs-identifier hs-var">initState</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[TickishType]
</span><a href="#local-6989586621681001895"><span class="hs-identifier hs-var">passes</span></a></span><span>
</span><span id="line-111"></span><span>
</span><span id="line-112"></span><span>     </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001847"><span class="annot"><span class="annottext">tickCount :: Int
</span><a href="#local-6989586621681001847"><span class="hs-identifier hs-var hs-var">tickCount</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransState -&gt; Int
</span><a href="GHC.HsToCore.Coverage.html#tickBoxCount"><span class="hs-identifier hs-var hs-var">tickBoxCount</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001849"><span class="hs-identifier hs-var">st</span></a></span><span>
</span><span id="line-113"></span><span>         </span><span id="local-6989586621681001846"><span class="annot"><span class="annottext">entries :: [MixEntry_]
</span><a href="#local-6989586621681001846"><span class="hs-identifier hs-var hs-var">entries</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[MixEntry_] -&gt; [MixEntry_]
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#reverse"><span class="hs-identifier hs-var">reverse</span></a></span><span> </span><span class="annot"><span class="annottext">([MixEntry_] -&gt; [MixEntry_]) -&gt; [MixEntry_] -&gt; [MixEntry_]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState -&gt; [MixEntry_]
</span><a href="GHC.HsToCore.Coverage.html#mixEntries"><span class="hs-identifier hs-var hs-var">mixEntries</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681001849"><span class="hs-identifier hs-var">st</span></a></span><span>
</span><span id="line-114"></span><span>     </span><span id="local-6989586621681001844"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001844"><span class="hs-identifier hs-var">hashNo</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; Module -&gt; Int -&gt; [MixEntry_] -&gt; FilePath -&gt; IO Int
</span><a href="GHC.HsToCore.Coverage.html#writeMixEntries"><span class="hs-identifier hs-var">writeMixEntries</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001897"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001902"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001847"><span class="hs-identifier hs-var">tickCount</span></a></span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001846"><span class="hs-identifier hs-var">entries</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001889"><span class="hs-identifier hs-var">orig_file2</span></a></span><span>
</span><span id="line-115"></span><span>     </span><span id="local-6989586621681001842"><span class="annot"><span class="annottext">Maybe ModBreaks
</span><a href="#local-6989586621681001842"><span class="hs-identifier hs-var">modBreaks</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; Module -&gt; Int -&gt; [MixEntry_] -&gt; IO (Maybe ModBreaks)
</span><a href="GHC.HsToCore.Coverage.html#mkModBreaks"><span class="hs-identifier hs-var">mkModBreaks</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001903"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001902"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001847"><span class="hs-identifier hs-var">tickCount</span></a></span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001846"><span class="hs-identifier hs-var">entries</span></a></span><span>
</span><span id="line-116"></span><span>
</span><span id="line-117"></span><span>     </span><span class="annot"><span class="annottext">DynFlags -&gt; DumpFlag -&gt; FilePath -&gt; DumpFormat -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Error.html#dumpIfSet_dyn"><span class="hs-identifier hs-var">dumpIfSet_dyn</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001897"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">DumpFlag
</span><a href="GHC.Driver.Flags.html#Opt_D_dump_ticked"><span class="hs-identifier hs-var">Opt_D_dump_ticked</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;HPC&quot;</span></span><span> </span><span class="annot"><span class="annottext">DumpFormat
</span><a href="GHC.Utils.Error.html#FormatHaskell"><span class="hs-identifier hs-var">FormatHaskell</span></a></span><span>
</span><span id="line-118"></span><span>       </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc -&gt; SDoc
forall (idL :: Pass) (idR :: Pass).
(OutputableBndrId idL, OutputableBndrId idR) =&gt;
LHsBindsLR (GhcPass idL) (GhcPass idR) -&gt; SDoc
</span><a href="GHC.Hs.Binds.html#pprLHsBinds"><span class="hs-identifier hs-var">pprLHsBinds</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001850"><span class="hs-identifier hs-var">binds1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-119"></span><span>
</span><span id="line-120"></span><span>     </span><span class="annot"><span class="annottext">(LHsBinds GhcTc, HpcInfo, Maybe ModBreaks)
-&gt; IO (LHsBinds GhcTc, HpcInfo, Maybe ModBreaks)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001850"><span class="hs-identifier hs-var">binds1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; HpcInfo
</span><a href="GHC.Driver.Types.html#HpcInfo"><span class="hs-identifier hs-var">HpcInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001847"><span class="hs-identifier hs-var">tickCount</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001844"><span class="hs-identifier hs-var">hashNo</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe ModBreaks
</span><a href="#local-6989586621681001842"><span class="hs-identifier hs-var">modBreaks</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsBinds GhcTc, HpcInfo, Maybe ModBreaks)
-&gt; IO (LHsBinds GhcTc, HpcInfo, Maybe ModBreaks)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001898"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; HpcInfo
</span><a href="GHC.Driver.Types.html#emptyHpcInfo"><span class="hs-identifier hs-var">emptyHpcInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe ModBreaks
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-123"></span><span>
</span><span id="line-124"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#guessSourceFile"><span class="hs-identifier hs-type">guessSourceFile</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span>
</span><span id="line-125"></span><span id="guessSourceFile"><span class="annot"><span class="annottext">guessSourceFile :: LHsBinds GhcTc -&gt; FilePath -&gt; FilePath
</span><a href="GHC.HsToCore.Coverage.html#guessSourceFile"><span class="hs-identifier hs-var hs-var">guessSourceFile</span></a></span></span><span> </span><span id="local-6989586621681001834"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001834"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span id="local-6989586621681001833"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001833"><span class="hs-identifier hs-var">orig_file</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-126"></span><span>     </span><span class="hs-comment">-- Try look for a file generated from a .hsc file to a</span><span>
</span><span id="line-127"></span><span>     </span><span class="hs-comment">-- .hs file, by peeking ahead.</span><span>
</span><span id="line-128"></span><span>     </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001832"><span class="annot"><span class="annottext">top_pos :: [FastString]
</span><a href="#local-6989586621681001832"><span class="hs-identifier hs-var hs-var">top_pos</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Maybe FastString] -&gt; [FastString]
forall a. [Maybe a] -&gt; [a]
</span><a href="../../base/src/Data.Maybe.html#catMaybes"><span class="hs-identifier hs-var">catMaybes</span></a></span><span> </span><span class="annot"><span class="annottext">([Maybe FastString] -&gt; [FastString])
-&gt; [Maybe FastString] -&gt; [FastString]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
 -&gt; [Maybe FastString] -&gt; [Maybe FastString])
-&gt; [Maybe FastString] -&gt; LHsBinds GhcTc -&gt; [Maybe FastString]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001829"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001829"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681001828"><span class="annot"><span class="annottext">[Maybe FastString]
</span><a href="#local-6989586621681001828"><span class="hs-identifier hs-var">rest</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-129"></span><span>                                 </span><span class="annot"><span class="annottext">SrcSpan -&gt; Maybe FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFileName_maybe"><span class="hs-identifier hs-var">srcSpanFileName_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001829"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe FastString -&gt; [Maybe FastString] -&gt; [Maybe FastString]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[Maybe FastString]
</span><a href="#local-6989586621681001828"><span class="hs-identifier hs-var">rest</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001834"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-130"></span><span>     </span><span class="hs-keyword">in</span><span>
</span><span id="line-131"></span><span>     </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[FastString]
</span><a href="#local-6989586621681001832"><span class="hs-identifier hs-var">top_pos</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-132"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621681001826"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681001826"><span class="hs-identifier hs-var">file_name</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">[FastString]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;.hsc&quot;</span></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; FilePath -&gt; Bool
forall a. Eq a =&gt; [a] -&gt; [a] -&gt; Bool
</span><a href="../../base/src/Data.OldList.html#isSuffixOf"><span class="hs-operator hs-var">`isSuffixOf`</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FilePath
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681001826"><span class="hs-identifier hs-var">file_name</span></a></span><span>
</span><span id="line-133"></span><span>                      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FilePath
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681001826"><span class="hs-identifier hs-var">file_name</span></a></span><span>
</span><span id="line-134"></span><span>        </span><span class="annot"><span class="annottext">[FastString]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001833"><span class="hs-identifier hs-var">orig_file</span></a></span><span>
</span><span id="line-135"></span><span>
</span><span id="line-136"></span><span>
</span><span id="line-137"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkModBreaks"><span class="hs-identifier hs-type">mkModBreaks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HscEnv"><span class="hs-identifier hs-type">HscEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#MixEntry_"><span class="hs-identifier hs-type">MixEntry_</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html#ModBreaks"><span class="hs-identifier hs-type">ModBreaks</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-138"></span><span id="mkModBreaks"><span class="annot"><span class="annottext">mkModBreaks :: HscEnv -&gt; Module -&gt; Int -&gt; [MixEntry_] -&gt; IO (Maybe ModBreaks)
</span><a href="GHC.HsToCore.Coverage.html#mkModBreaks"><span class="hs-identifier hs-var hs-var">mkModBreaks</span></a></span></span><span> </span><span id="local-6989586621681001823"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001823"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span id="local-6989586621681001822"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001822"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span id="local-6989586621681001821"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001821"><span class="hs-identifier hs-var">count</span></a></span></span><span> </span><span id="local-6989586621681001820"><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001820"><span class="hs-identifier hs-var">entries</span></a></span></span><span>
</span><span id="line-139"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#breakpointsEnabled"><span class="hs-identifier hs-var">breakpointsEnabled</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HscEnv -&gt; DynFlags
</span><a href="GHC.Driver.Types.html#hsc_dflags"><span class="hs-identifier hs-var hs-var">hsc_dflags</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001823"><span class="hs-identifier hs-var">hsc_env</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-140"></span><span>    </span><span id="local-6989586621681001818"><span class="annot"><span class="annottext">ForeignRef BreakArray
</span><a href="#local-6989586621681001818"><span class="hs-identifier hs-var">breakArray</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; Int -&gt; IO (ForeignRef BreakArray)
</span><a href="GHC.Runtime.Interpreter.html#newBreakArray"><span class="hs-identifier hs-var">GHCi.newBreakArray</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001823"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[MixEntry_] -&gt; Int
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001820"><span class="hs-identifier hs-var">entries</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-141"></span><span>    </span><span id="local-6989586621681001815"><span class="annot"><span class="annottext">Array Int (RemotePtr CostCentre)
</span><a href="#local-6989586621681001815"><span class="hs-identifier hs-var">ccs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HscEnv
-&gt; Module
-&gt; Int
-&gt; [MixEntry_]
-&gt; IO (Array Int (RemotePtr CostCentre))
</span><a href="GHC.HsToCore.Coverage.html#mkCCSArray"><span class="hs-identifier hs-var">mkCCSArray</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001823"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001822"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001821"><span class="hs-identifier hs-var">count</span></a></span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001820"><span class="hs-identifier hs-var">entries</span></a></span><span>
</span><span id="line-142"></span><span>    </span><span class="hs-keyword">let</span><span>
</span><span id="line-143"></span><span>           </span><span id="local-6989586621681001813"><span class="annot"><span class="annottext">locsTicks :: Array Int SrcSpan
</span><a href="#local-6989586621681001813"><span class="hs-identifier hs-var hs-var">locsTicks</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int, Int) -&gt; [SrcSpan] -&gt; Array Int SrcSpan
forall i e. Ix i =&gt; (i, i) -&gt; [e] -&gt; Array i e
</span><a href="../../base/src/GHC.Arr.html#listArray"><span class="hs-identifier hs-var">listArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001821"><span class="hs-identifier hs-var">count</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001811"><span class="hs-identifier hs-var">span</span></a></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001811"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001811"><span class="hs-identifier hs-var">span</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[FilePath]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[OccName]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">BoxLabel
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001820"><span class="hs-identifier hs-var">entries</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-144"></span><span>           </span><span id="local-6989586621681001810"><span class="annot"><span class="annottext">varsTicks :: Array Int [OccName]
</span><a href="#local-6989586621681001810"><span class="hs-identifier hs-var hs-var">varsTicks</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int, Int) -&gt; [[OccName]] -&gt; Array Int [OccName]
forall i e. Ix i =&gt; (i, i) -&gt; [e] -&gt; Array i e
</span><a href="../../base/src/GHC.Arr.html#listArray"><span class="hs-identifier hs-var">listArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001821"><span class="hs-identifier hs-var">count</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">[OccName]
</span><a href="#local-6989586621681001809"><span class="hs-identifier hs-var">vars</span></a></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[FilePath]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span id="local-6989586621681001809"><span class="annot"><span class="annottext">[OccName]
</span><a href="#local-6989586621681001809"><span class="hs-identifier hs-var">vars</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">BoxLabel
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001820"><span class="hs-identifier hs-var">entries</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-145"></span><span>           </span><span id="local-6989586621681001808"><span class="annot"><span class="annottext">declsTicks :: Array Int [FilePath]
</span><a href="#local-6989586621681001808"><span class="hs-identifier hs-var hs-var">declsTicks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int, Int) -&gt; [[FilePath]] -&gt; Array Int [FilePath]
forall i e. Ix i =&gt; (i, i) -&gt; [e] -&gt; Array i e
</span><a href="../../base/src/GHC.Arr.html#listArray"><span class="hs-identifier hs-var">listArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001821"><span class="hs-identifier hs-var">count</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001807"><span class="hs-identifier hs-var">decls</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span id="local-6989586621681001807"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001807"><span class="hs-identifier hs-var">decls</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[OccName]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">BoxLabel
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001820"><span class="hs-identifier hs-var">entries</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-146"></span><span>    </span><span class="annot"><span class="annottext">Maybe ModBreaks -&gt; IO (Maybe ModBreaks)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe ModBreaks -&gt; IO (Maybe ModBreaks))
-&gt; Maybe ModBreaks -&gt; IO (Maybe ModBreaks)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ModBreaks -&gt; Maybe ModBreaks
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">(ModBreaks -&gt; Maybe ModBreaks) -&gt; ModBreaks -&gt; Maybe ModBreaks
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ModBreaks
</span><a href="GHC.ByteCode.Types.html#emptyModBreaks"><span class="hs-identifier hs-var">emptyModBreaks</span></a></span><span>
</span><span id="line-147"></span><span>                       </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">modBreaks_flags :: ForeignRef BreakArray
</span><a href="GHC.ByteCode.Types.html#modBreaks_flags"><span class="hs-identifier hs-var">modBreaks_flags</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ForeignRef BreakArray
</span><a href="#local-6989586621681001818"><span class="hs-identifier hs-var">breakArray</span></a></span><span>
</span><span id="line-148"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">modBreaks_locs :: Array Int SrcSpan
</span><a href="GHC.ByteCode.Types.html#modBreaks_locs"><span class="hs-identifier hs-var">modBreaks_locs</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Array Int SrcSpan
</span><a href="#local-6989586621681001813"><span class="hs-identifier hs-var">locsTicks</span></a></span><span>
</span><span id="line-149"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">modBreaks_vars :: Array Int [OccName]
</span><a href="GHC.ByteCode.Types.html#modBreaks_vars"><span class="hs-identifier hs-var">modBreaks_vars</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Array Int [OccName]
</span><a href="#local-6989586621681001810"><span class="hs-identifier hs-var">varsTicks</span></a></span><span>
</span><span id="line-150"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">modBreaks_decls :: Array Int [FilePath]
</span><a href="GHC.ByteCode.Types.html#modBreaks_decls"><span class="hs-identifier hs-var">modBreaks_decls</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Array Int [FilePath]
</span><a href="#local-6989586621681001808"><span class="hs-identifier hs-var">declsTicks</span></a></span><span>
</span><span id="line-151"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">modBreaks_ccs :: Array Int (RemotePtr CostCentre)
</span><a href="GHC.ByteCode.Types.html#modBreaks_ccs"><span class="hs-identifier hs-var">modBreaks_ccs</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Array Int (RemotePtr CostCentre)
</span><a href="#local-6989586621681001815"><span class="hs-identifier hs-var">ccs</span></a></span><span>
</span><span id="line-152"></span><span>                       </span><span class="hs-special">}</span><span>
</span><span id="line-153"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe ModBreaks -&gt; IO (Maybe ModBreaks)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe ModBreaks
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkCCSArray"><span class="hs-identifier hs-type">mkCCSArray</span></a></span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HscEnv"><span class="hs-identifier hs-type">HscEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#MixEntry_"><span class="hs-identifier hs-type">MixEntry_</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-157"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Arr.html#Array"><span class="hs-identifier hs-type">Array</span></a></span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html#BreakIndex"><span class="hs-identifier hs-type">BreakIndex</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../ghci/src/GHCi.RemoteTypes.html#RemotePtr"><span class="hs-identifier hs-type">RemotePtr</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.CCS.html#CostCentre"><span class="hs-identifier hs-type">GHC.Stack.CCS.CostCentre</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-158"></span><span id="mkCCSArray"><span class="annot"><span class="annottext">mkCCSArray :: HscEnv
-&gt; Module
-&gt; Int
-&gt; [MixEntry_]
-&gt; IO (Array Int (RemotePtr CostCentre))
</span><a href="GHC.HsToCore.Coverage.html#mkCCSArray"><span class="hs-identifier hs-var hs-var">mkCCSArray</span></a></span></span><span> </span><span id="local-6989586621681001799"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001799"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span id="local-6989586621681001798"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001798"><span class="hs-identifier hs-var">modul</span></a></span></span><span> </span><span id="local-6989586621681001797"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001797"><span class="hs-identifier hs-var">count</span></a></span></span><span> </span><span id="local-6989586621681001796"><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001796"><span class="hs-identifier hs-var">entries</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-159"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; Maybe Interp
</span><a href="GHC.Driver.Types.html#hsc_interp"><span class="hs-identifier hs-var hs-var">hsc_interp</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001799"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-160"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681001794"><span class="annot"><span class="annottext">Interp
</span><a href="#local-6989586621681001794"><span class="hs-identifier hs-var">interp</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Interp -&gt; Bool
</span><a href="GHC.Runtime.Interpreter.html#interpreterProfiled"><span class="hs-identifier hs-var">GHCi.interpreterProfiled</span></a></span><span> </span><span class="annot"><span class="annottext">Interp
</span><a href="#local-6989586621681001794"><span class="hs-identifier hs-var">interp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-161"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001792"><span class="annot"><span class="annottext">module_str :: FilePath
</span><a href="#local-6989586621681001792"><span class="hs-identifier hs-var hs-var">module_str</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; FilePath
</span><a href="GHC.Unit.Module.Name.html#moduleNameString"><span class="hs-identifier hs-var">moduleNameString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001798"><span class="hs-identifier hs-var">modul</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span>      </span><span id="local-6989586621681001789"><span class="annot"><span class="annottext">[RemotePtr CostCentre]
</span><a href="#local-6989586621681001789"><span class="hs-identifier hs-var">costcentres</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HscEnv
-&gt; FilePath -&gt; [(FilePath, FilePath)] -&gt; IO [RemotePtr CostCentre]
</span><a href="GHC.Runtime.Interpreter.html#mkCostCentres"><span class="hs-identifier hs-var">GHCi.mkCostCentres</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001799"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001792"><span class="hs-identifier hs-var">module_str</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(MixEntry_ -&gt; (FilePath, FilePath))
-&gt; [MixEntry_] -&gt; [(FilePath, FilePath)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; (FilePath, FilePath)
</span><a href="#local-6989586621681001787"><span class="hs-identifier hs-var">mk_one</span></a></span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001796"><span class="hs-identifier hs-var">entries</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-163"></span><span>      </span><span class="annot"><span class="annottext">Array Int (RemotePtr CostCentre)
-&gt; IO (Array Int (RemotePtr CostCentre))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int, Int)
-&gt; [RemotePtr CostCentre] -&gt; Array Int (RemotePtr CostCentre)
forall i e. Ix i =&gt; (i, i) -&gt; [e] -&gt; Array i e
</span><a href="../../base/src/GHC.Arr.html#listArray"><span class="hs-identifier hs-var">listArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001797"><span class="hs-identifier hs-var">count</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[RemotePtr CostCentre]
</span><a href="#local-6989586621681001789"><span class="hs-identifier hs-var">costcentres</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-164"></span><span>
</span><span id="line-165"></span><span>    </span><span class="annot"><span class="annottext">Maybe Interp
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Array Int (RemotePtr CostCentre)
-&gt; IO (Array Int (RemotePtr CostCentre))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int, Int)
-&gt; [RemotePtr CostCentre] -&gt; Array Int (RemotePtr CostCentre)
forall i e. Ix i =&gt; (i, i) -&gt; [e] -&gt; Array i e
</span><a href="../../base/src/GHC.Arr.html#listArray"><span class="hs-identifier hs-var">listArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">,</span><span class="hs-glyph">-</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-167"></span><span>    </span><span id="local-6989586621681001786"><span class="annot"><span class="annottext">dflags :: DynFlags
</span><a href="#local-6989586621681001786"><span class="hs-identifier hs-var hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; DynFlags
</span><a href="GHC.Driver.Types.html#hsc_dflags"><span class="hs-identifier hs-var hs-var">hsc_dflags</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681001799"><span class="hs-identifier hs-var">hsc_env</span></a></span><span>
</span><span id="line-168"></span><span>    </span><span id="local-6989586621681001787"><span class="annot"><span class="annottext">mk_one :: MixEntry_ -&gt; (FilePath, FilePath)
</span><a href="#local-6989586621681001787"><span class="hs-identifier hs-var hs-var">mk_one</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001785"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001785"><span class="hs-identifier hs-var">srcspan</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681001784"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001784"><span class="hs-identifier hs-var">decl_path</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[OccName]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001783"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001782"><span class="hs-identifier hs-var">src</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-169"></span><span>      </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681001783"><span class="annot"><span class="annottext">name :: FilePath
</span><a href="#local-6989586621681001783"><span class="hs-identifier hs-var hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; FilePath
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; [FilePath] -&gt; [FilePath]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier hs-var">intersperse</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;.&quot;</span></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001784"><span class="hs-identifier hs-var">decl_path</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-170"></span><span>            </span><span id="local-6989586621681001782"><span class="annot"><span class="annottext">src :: FilePath
</span><a href="#local-6989586621681001782"><span class="hs-identifier hs-var hs-var">src</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc -&gt; FilePath
</span><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier hs-var">showSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001786"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001785"><span class="hs-identifier hs-var">srcspan</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-171"></span><span>
</span><span id="line-172"></span><span>
</span><span id="line-173"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#writeMixEntries"><span class="hs-identifier hs-type">writeMixEntries</span></a></span><span>
</span><span id="line-174"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#MixEntry_"><span class="hs-identifier hs-type">MixEntry_</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-175"></span><span id="writeMixEntries"><span class="annot"><span class="annottext">writeMixEntries :: DynFlags -&gt; Module -&gt; Int -&gt; [MixEntry_] -&gt; FilePath -&gt; IO Int
</span><a href="GHC.HsToCore.Coverage.html#writeMixEntries"><span class="hs-identifier hs-var hs-var">writeMixEntries</span></a></span></span><span> </span><span id="local-6989586621681001777"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001777"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621681001776"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001776"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span id="local-6989586621681001775"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001775"><span class="hs-identifier hs-var">count</span></a></span></span><span> </span><span id="local-6989586621681001774"><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001774"><span class="hs-identifier hs-var">entries</span></a></span></span><span> </span><span id="local-6989586621681001773"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001773"><span class="hs-identifier hs-var">filename</span></a></span></span><span>
</span><span id="line-176"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GeneralFlag -&gt; DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#gopt"><span class="hs-identifier hs-var">gopt</span></a></span><span> </span><span class="annot"><span class="annottext">GeneralFlag
</span><a href="GHC.Driver.Flags.html#Opt_Hpc"><span class="hs-identifier hs-var">Opt_Hpc</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001777"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; IO Int
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-177"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-178"></span><span>        </span><span class="hs-keyword">let</span><span>
</span><span id="line-179"></span><span>            </span><span id="local-6989586621681001770"><span class="annot"><span class="annottext">hpc_dir :: FilePath
</span><a href="#local-6989586621681001770"><span class="hs-identifier hs-var hs-var">hpc_dir</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; FilePath
</span><a href="GHC.Driver.Session.html#hpcDir"><span class="hs-identifier hs-var hs-var">hpcDir</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001777"><span class="hs-identifier hs-var">dflags</span></a></span><span>
</span><span id="line-180"></span><span>            </span><span id="local-6989586621681001768"><span class="annot"><span class="annottext">mod_name :: FilePath
</span><a href="#local-6989586621681001768"><span class="hs-identifier hs-var hs-var">mod_name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; FilePath
</span><a href="GHC.Unit.Module.Name.html#moduleNameString"><span class="hs-identifier hs-var">moduleNameString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001776"><span class="hs-identifier hs-var">mod</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-181"></span><span>
</span><span id="line-182"></span><span>            </span><span id="local-6989586621681001767"><span class="annot"><span class="annottext">hpc_mod_dir :: FilePath
</span><a href="#local-6989586621681001767"><span class="hs-identifier hs-var hs-var">hpc_mod_dir</span></a></span></span><span>
</span><span id="line-183"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001776"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unit -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#mainUnit"><span class="hs-identifier hs-var">mainUnit</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001770"><span class="hs-identifier hs-var">hpc_dir</span></a></span><span>
</span><span id="line-184"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001770"><span class="hs-identifier hs-var">hpc_dir</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; FilePath -&gt; FilePath
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;/&quot;</span></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; FilePath -&gt; FilePath
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; FilePath
</span><a href="GHC.Unit.Types.html#unitString"><span class="hs-identifier hs-var">unitString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681001776"><span class="hs-identifier hs-var">mod</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-185"></span><span>
</span><span id="line-186"></span><span>            </span><span id="local-6989586621681001762"><span class="annot"><span class="annottext">tabStop :: Int
</span><a href="#local-6989586621681001762"><span class="hs-identifier hs-var hs-var">tabStop</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span> </span><span class="hs-comment">-- &lt;tab&gt; counts as a normal char in GHC's</span><span>
</span><span id="line-187"></span><span>                        </span><span class="hs-comment">-- location ranges.</span><span>
</span><span id="line-188"></span><span>
</span><span id="line-189"></span><span>        </span><span class="annot"><span class="annottext">Bool -&gt; FilePath -&gt; IO ()
</span><a href="../../directory/src/System.Directory.html#createDirectoryIfMissing"><span class="hs-identifier hs-var">createDirectoryIfMissing</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001767"><span class="hs-identifier hs-var">hpc_mod_dir</span></a></span><span>
</span><span id="line-190"></span><span>        </span><span id="local-6989586621681001760"><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621681001760"><span class="hs-identifier hs-var">modTime</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; IO UTCTime
</span><a href="GHC.Utils.Misc.html#getModificationUTCTime"><span class="hs-identifier hs-var">getModificationUTCTime</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001773"><span class="hs-identifier hs-var">filename</span></a></span><span>
</span><span id="line-191"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001758"><span class="annot"><span class="annottext">entries' :: [(HpcPos, BoxLabel)]
</span><a href="#local-6989586621681001758"><span class="hs-identifier hs-var hs-var">entries'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HpcPos
</span><a href="#local-6989586621681001757"><span class="hs-identifier hs-var">hpcPos</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681001756"><span class="hs-identifier hs-var">box</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-192"></span><span>                       </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001755"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001755"><span class="hs-identifier hs-var">span</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[FilePath]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[OccName]
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span id="local-6989586621681001756"><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681001756"><span class="hs-identifier hs-var">box</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[MixEntry_]
</span><a href="#local-6989586621681001774"><span class="hs-identifier hs-var">entries</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681001757"><span class="annot"><span class="annottext">HpcPos
</span><a href="#local-6989586621681001757"><span class="hs-identifier hs-var">hpcPos</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SrcSpan -&gt; HpcPos
</span><a href="GHC.HsToCore.Coverage.html#mkHpcPos"><span class="hs-identifier hs-var">mkHpcPos</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001755"><span class="hs-identifier hs-var">span</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-193"></span><span>        </span><span class="annot"><span class="annottext">Bool -&gt; IO () -&gt; IO ()
forall (f :: * -&gt; *). Applicative f =&gt; Bool -&gt; f () -&gt; f ()
</span><a href="../../base/src/GHC.Base.html#when"><span class="hs-identifier hs-var">when</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[(HpcPos, BoxLabel)]
</span><a href="#local-6989586621681001758"><span class="hs-identifier hs-var">entries'</span></a></span><span> </span><span class="annot"><span class="annottext">[(HpcPos, BoxLabel)] -&gt; Int -&gt; Bool
forall a. [a] -&gt; Int -&gt; Bool
</span><a href="GHC.Utils.Misc.html#lengthIsNot"><span class="hs-operator hs-var">`lengthIsNot`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001775"><span class="hs-identifier hs-var">count</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IO () -&gt; IO ()) -&gt; IO () -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-194"></span><span>          </span><span class="annot"><span class="annottext">FilePath -&gt; IO ()
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;the number of .mix entries are inconsistent&quot;</span></span><span>
</span><span id="line-195"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001750"><span class="annot"><span class="annottext">hashNo :: Int
</span><a href="#local-6989586621681001750"><span class="hs-identifier hs-var hs-var">hashNo</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; UTCTime -&gt; Int -&gt; [(HpcPos, BoxLabel)] -&gt; Int
</span><a href="GHC.HsToCore.Coverage.html#mixHash"><span class="hs-identifier hs-var">mixHash</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001773"><span class="hs-identifier hs-var">filename</span></a></span><span> </span><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621681001760"><span class="hs-identifier hs-var">modTime</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001762"><span class="hs-identifier hs-var">tabStop</span></a></span><span> </span><span class="annot"><span class="annottext">[(HpcPos, BoxLabel)]
</span><a href="#local-6989586621681001758"><span class="hs-identifier hs-var">entries'</span></a></span><span>
</span><span id="line-196"></span><span>        </span><span class="annot"><span class="annottext">FilePath -&gt; FilePath -&gt; Mix -&gt; IO ()
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#mixCreate"><span class="hs-identifier hs-var">mixCreate</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001767"><span class="hs-identifier hs-var">hpc_mod_dir</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001768"><span class="hs-identifier hs-var">mod_name</span></a></span><span>
</span><span id="line-197"></span><span>                       </span><span class="annot"><span class="annottext">(Mix -&gt; IO ()) -&gt; Mix -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; UTCTime -&gt; Hash -&gt; Int -&gt; [(HpcPos, BoxLabel)] -&gt; Mix
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#Mix"><span class="hs-identifier hs-var">Mix</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001773"><span class="hs-identifier hs-var">filename</span></a></span><span> </span><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621681001760"><span class="hs-identifier hs-var">modTime</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Hash
forall a. HpcHash a =&gt; a -&gt; Hash
</span><a href="../../hpc/src/Trace.Hpc.Util.html#toHash"><span class="hs-identifier hs-var">toHash</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001750"><span class="hs-identifier hs-var">hashNo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001762"><span class="hs-identifier hs-var">tabStop</span></a></span><span> </span><span class="annot"><span class="annottext">[(HpcPos, BoxLabel)]
</span><a href="#local-6989586621681001758"><span class="hs-identifier hs-var">entries'</span></a></span><span>
</span><span id="line-198"></span><span>        </span><span class="annot"><span class="annottext">Int -&gt; IO Int
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001750"><span class="hs-identifier hs-var">hashNo</span></a></span><span>
</span><span id="line-199"></span><span>
</span><span id="line-200"></span><span>
</span><span id="line-201"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-202"></span><span class="hs-comment">-- TickDensity: where to insert ticks</span><span>
</span><span id="line-203"></span><span>
</span><span id="line-204"></span><span class="hs-keyword">data</span><span> </span><span id="TickDensity"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-var">TickDensity</span></a></span></span><span>
</span><span id="line-205"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="TickForCoverage"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span></span><span>       </span><span class="hs-comment">-- for Hpc</span><span>
</span><span id="line-206"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="TickForBreakPoints"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span></span><span>    </span><span class="hs-comment">-- for GHCi</span><span>
</span><span id="line-207"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="TickAllFunctions"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span></span><span>      </span><span class="hs-comment">-- for -prof-auto-all</span><span>
</span><span id="line-208"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="TickTopFunctions"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTopFunctions"><span class="hs-identifier hs-var">TickTopFunctions</span></a></span></span><span>      </span><span class="hs-comment">-- for -prof-auto-top</span><span>
</span><span id="line-209"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="TickExportedFunctions"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickExportedFunctions"><span class="hs-identifier hs-var">TickExportedFunctions</span></a></span></span><span> </span><span class="hs-comment">-- for -prof-auto-exported</span><span>
</span><span id="line-210"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="TickCallSites"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickCallSites"><span class="hs-identifier hs-var">TickCallSites</span></a></span></span><span>         </span><span class="hs-comment">-- for stack tracing</span><span>
</span><span id="line-211"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span id="local-6989586621681001736"><span id="local-6989586621681001738"><span class="annot"><span class="annottext">TickDensity -&gt; TickDensity -&gt; Bool
(TickDensity -&gt; TickDensity -&gt; Bool)
-&gt; (TickDensity -&gt; TickDensity -&gt; Bool) -&gt; Eq TickDensity
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: TickDensity -&gt; TickDensity -&gt; Bool
$c/= :: TickDensity -&gt; TickDensity -&gt; Bool
== :: TickDensity -&gt; TickDensity -&gt; Bool
$c== :: TickDensity -&gt; TickDensity -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span>
</span><span id="line-212"></span><span>
</span><span id="line-213"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkDensity"><span class="hs-identifier hs-type">mkDensity</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickishType"><span class="hs-identifier hs-type">TickishType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span>
</span><span id="line-214"></span><span id="mkDensity"><span class="annot"><span class="annottext">mkDensity :: TickishType -&gt; DynFlags -&gt; TickDensity
</span><a href="GHC.HsToCore.Coverage.html#mkDensity"><span class="hs-identifier hs-var hs-var">mkDensity</span></a></span></span><span> </span><span id="local-6989586621681001734"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001734"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span id="local-6989586621681001733"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001733"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001734"><span class="hs-identifier hs-var">tickish</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-215"></span><span>  </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#HpcTicks"><span class="hs-identifier hs-var">HpcTicks</span></a></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>
</span><span id="line-216"></span><span>  </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#SourceNotes"><span class="hs-identifier hs-var">SourceNotes</span></a></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>
</span><span id="line-217"></span><span>  </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#Breakpoints"><span class="hs-identifier hs-var">Breakpoints</span></a></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span><span>
</span><span id="line-218"></span><span>  </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#ProfNotes"><span class="hs-identifier hs-var">ProfNotes</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-219"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; ProfAuto
</span><a href="GHC.Driver.Session.html#profAuto"><span class="hs-identifier hs-var hs-var">profAuto</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681001733"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-220"></span><span>      </span><span class="annot"><span class="annottext">ProfAuto
</span><a href="GHC.Driver.Session.html#ProfAutoAll"><span class="hs-identifier hs-var">ProfAutoAll</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span><span>
</span><span id="line-221"></span><span>      </span><span class="annot"><span class="annottext">ProfAuto
</span><a href="GHC.Driver.Session.html#ProfAutoTop"><span class="hs-identifier hs-var">ProfAutoTop</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickTopFunctions"><span class="hs-identifier hs-var">TickTopFunctions</span></a></span><span>
</span><span id="line-222"></span><span>      </span><span class="annot"><span class="annottext">ProfAuto
</span><a href="GHC.Driver.Session.html#ProfAutoExports"><span class="hs-identifier hs-var">ProfAutoExports</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickExportedFunctions"><span class="hs-identifier hs-var">TickExportedFunctions</span></a></span><span>
</span><span id="line-223"></span><span>      </span><span class="annot"><span class="annottext">ProfAuto
</span><a href="GHC.Driver.Session.html#ProfAutoCalls"><span class="hs-identifier hs-var">ProfAutoCalls</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickCallSites"><span class="hs-identifier hs-var">TickCallSites</span></a></span><span>
</span><span id="line-224"></span><span>      </span><span id="local-6989586621681001723"><span class="annot"><span class="annottext">ProfAuto
</span><a href="#local-6989586621681001723"><span class="hs-identifier hs-var">_other</span></a></span></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; TickDensity
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;mkDensity&quot;</span></span><span>
</span><span id="line-225"></span><span>
</span><span id="line-226"></span><span class="hs-comment">-- | Decide whether to add a tick to a binding or not.</span><span>
</span><span id="line-227"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#shouldTickBind"><span class="hs-identifier hs-type">shouldTickBind</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span>
</span><span id="line-228"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>         </span><span class="hs-comment">-- top level?</span><span>
</span><span id="line-229"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>         </span><span class="hs-comment">-- exported?</span><span>
</span><span id="line-230"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>         </span><span class="hs-comment">-- simple pat bind?</span><span>
</span><span id="line-231"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>         </span><span class="hs-comment">-- INLINE pragma?</span><span>
</span><span id="line-232"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span id="shouldTickBind"><span class="annot"><span class="annottext">shouldTickBind :: TickDensity -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#shouldTickBind"><span class="hs-identifier hs-var hs-var">shouldTickBind</span></a></span></span><span> </span><span id="local-6989586621681001721"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001721"><span class="hs-identifier hs-var">density</span></a></span></span><span> </span><span id="local-6989586621681001720"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001720"><span class="hs-identifier hs-var">top_lev</span></a></span></span><span> </span><span id="local-6989586621681001719"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001719"><span class="hs-identifier hs-var">exported</span></a></span></span><span> </span><span id="local-6989586621681001718"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001718"><span class="hs-identifier hs-var">_simple_pat</span></a></span></span><span> </span><span id="local-6989586621681001717"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001717"><span class="hs-identifier hs-var">inline</span></a></span></span><span>
</span><span id="line-235"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001721"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-236"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-237"></span><span>        </span><span class="hs-comment">-- we never add breakpoints to simple pattern bindings</span><span>
</span><span id="line-238"></span><span>        </span><span class="hs-comment">-- (there's always a tick on the rhs anyway).</span><span>
</span><span id="line-239"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001717"><span class="hs-identifier hs-var">inline</span></a></span><span>
</span><span id="line-240"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickTopFunctions"><span class="hs-identifier hs-var">TickTopFunctions</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001720"><span class="hs-identifier hs-var">top_lev</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001717"><span class="hs-identifier hs-var">inline</span></a></span><span>
</span><span id="line-241"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickExportedFunctions"><span class="hs-identifier hs-var">TickExportedFunctions</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001719"><span class="hs-identifier hs-var">exported</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001717"><span class="hs-identifier hs-var">inline</span></a></span><span>
</span><span id="line-242"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-243"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickCallSites"><span class="hs-identifier hs-var">TickCallSites</span></a></span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-244"></span><span>
</span><span id="line-245"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#shouldTickPatBind"><span class="hs-identifier hs-type">shouldTickPatBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-246"></span><span id="shouldTickPatBind"><span class="annot"><span class="annottext">shouldTickPatBind :: TickDensity -&gt; Bool -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#shouldTickPatBind"><span class="hs-identifier hs-var hs-var">shouldTickPatBind</span></a></span></span><span> </span><span id="local-6989586621681001714"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001714"><span class="hs-identifier hs-var">density</span></a></span></span><span> </span><span id="local-6989586621681001713"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001713"><span class="hs-identifier hs-var">top_lev</span></a></span></span><span>
</span><span id="line-247"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001714"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-248"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-249"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-250"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickTopFunctions"><span class="hs-identifier hs-var">TickTopFunctions</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001713"><span class="hs-identifier hs-var">top_lev</span></a></span><span>
</span><span id="line-251"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickExportedFunctions"><span class="hs-identifier hs-var">TickExportedFunctions</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-252"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-253"></span><span>      </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickCallSites"><span class="hs-identifier hs-var">TickCallSites</span></a></span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-254"></span><span>
</span><span id="line-255"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-256"></span><span class="hs-comment">-- Adding ticks to bindings</span><span>
</span><span id="line-257"></span><span>
</span><span id="line-258"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsBinds"><span class="hs-identifier hs-type">addTickLHsBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-259"></span><span id="addTickLHsBinds"><span class="annot"><span class="annottext">addTickLHsBinds :: LHsBinds GhcTc -&gt; TM (LHsBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsBinds"><span class="hs-identifier hs-var hs-var">addTickLHsBinds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
 -&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc)))
-&gt; LHsBinds GhcTc -&gt; TM (LHsBinds GhcTc)
forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; Bag a -&gt; m (Bag b)
</span><a href="GHC.Data.Bag.html#mapBagM"><span class="hs-identifier hs-var">mapBagM</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-var">addTickLHsBind</span></a></span><span>
</span><span id="line-260"></span><span>
</span><span id="line-261"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-type">addTickLHsBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBind"><span class="hs-identifier hs-type">LHsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBind"><span class="hs-identifier hs-type">LHsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-262"></span><span id="addTickLHsBind"><span class="annot"><span class="annottext">addTickLHsBind :: GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-var hs-var">addTickLHsBind</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001709"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001709"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001708"><span class="annot"><span class="annottext">bind :: HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001708"><span class="hs-identifier hs-var">bind</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#AbsBinds"><span class="hs-identifier hs-type">AbsBinds</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abs_binds :: forall idL idR. HsBindLR idL idR -&gt; LHsBinds idL
</span><a href="GHC.Hs.Binds.html#abs_binds"><span class="hs-identifier hs-var">abs_binds</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001705"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001705"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">,</span><span>
</span><span id="line-263"></span><span>                                       </span><span class="annot"><span class="annottext">abs_exports :: forall idL idR. HsBindLR idL idR -&gt; [ABExport idL]
</span><a href="GHC.Hs.Binds.html#abs_exports"><span class="hs-identifier hs-var">abs_exports</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001703"><span class="annot"><span class="annottext">[ABExport GhcTc]
</span><a href="#local-6989586621681001703"><span class="hs-identifier hs-var">abs_exports</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-264"></span><span>  </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransEnv)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a. (TickTransEnv -&gt; TickTransEnv) -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#withEnv"><span class="hs-identifier hs-var">withEnv</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransEnv
</span><a href="#local-6989586621681001701"><span class="hs-identifier hs-var">add_exports</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
 -&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc)))
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-265"></span><span>  </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransEnv)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a. (TickTransEnv -&gt; TickTransEnv) -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#withEnv"><span class="hs-identifier hs-var">withEnv</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransEnv
</span><a href="#local-6989586621681001700"><span class="hs-identifier hs-var">add_inlines</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
 -&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc)))
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-266"></span><span>  </span><span id="local-6989586621681001699"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001699"><span class="hs-identifier hs-var">binds'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc -&gt; TM (LHsBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsBinds"><span class="hs-identifier hs-var">addTickLHsBinds</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001705"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-267"></span><span>  </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
 -&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc)))
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001709"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBindLR GhcTc GhcTc -&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001708"><span class="hs-identifier hs-var">bind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abs_binds :: LHsBinds GhcTc
</span><a href="GHC.Hs.Binds.html#abs_binds"><span class="hs-identifier hs-var">abs_binds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001699"><span class="hs-identifier hs-var">binds'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-268"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-269"></span><span>   </span><span class="hs-comment">-- in AbsBinds, the Id on each binding is not the actual top-level</span><span>
</span><span id="line-270"></span><span>   </span><span class="hs-comment">-- Id that we are defining, they are related by the abs_exports</span><span>
</span><span id="line-271"></span><span>   </span><span class="hs-comment">-- field of AbsBinds.  So if we're doing TickExportedFunctions we need</span><span>
</span><span id="line-272"></span><span>   </span><span class="hs-comment">-- to add the local Ids to the set of exported Names so that we know to</span><span>
</span><span id="line-273"></span><span>   </span><span class="hs-comment">-- tick the right bindings.</span><span>
</span><span id="line-274"></span><span>   </span><span id="local-6989586621681001701"><span class="annot"><span class="annottext">add_exports :: TickTransEnv -&gt; TickTransEnv
</span><a href="#local-6989586621681001701"><span class="hs-identifier hs-var hs-var">add_exports</span></a></span></span><span> </span><span id="local-6989586621681001698"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001698"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-275"></span><span>     </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001698"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">exports :: NameSet
</span><a href="GHC.HsToCore.Coverage.html#exports"><span class="hs-identifier hs-var">exports</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; NameSet
</span><a href="GHC.HsToCore.Coverage.html#exports"><span class="hs-identifier hs-var hs-var">exports</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001698"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">NameSet -&gt; [Name] -&gt; NameSet
</span><a href="GHC.Types.Name.Set.html#extendNameSetList"><span class="hs-operator hs-var">`extendNameSetList`</span></a></span><span>
</span><span id="line-276"></span><span>                      </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Id.html#idName"><span class="hs-identifier hs-var">idName</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001695"><span class="hs-identifier hs-var">mid</span></a></span><span>
</span><span id="line-277"></span><span>                      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#ABE"><span class="hs-identifier hs-type">ABE</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abe_poly :: forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_poly"><span class="hs-identifier hs-var">abe_poly</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001692"><span class="annot"><span class="annottext">IdP GhcTc
</span><a href="#local-6989586621681001692"><span class="hs-identifier hs-var">pid</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">abe_mono :: forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_mono"><span class="hs-identifier hs-var">abe_mono</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001695"><span class="annot"><span class="annottext">IdP GhcTc
</span><a href="#local-6989586621681001695"><span class="hs-identifier hs-var">mid</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[ABExport GhcTc]
</span><a href="#local-6989586621681001703"><span class="hs-identifier hs-var">abs_exports</span></a></span><span>
</span><span id="line-278"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Id.html#idName"><span class="hs-identifier hs-var">idName</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001692"><span class="hs-identifier hs-var">pid</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; NameSet -&gt; Bool
</span><a href="GHC.Types.Name.Set.html#elemNameSet"><span class="hs-operator hs-var">`elemNameSet`</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; NameSet
</span><a href="GHC.HsToCore.Coverage.html#exports"><span class="hs-identifier hs-var hs-var">exports</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001698"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-279"></span><span>
</span><span id="line-280"></span><span>   </span><span class="hs-comment">-- See Note [inline sccs]</span><span>
</span><span id="line-281"></span><span>   </span><span id="local-6989586621681001700"><span class="annot"><span class="annottext">add_inlines :: TickTransEnv -&gt; TickTransEnv
</span><a href="#local-6989586621681001700"><span class="hs-identifier hs-var hs-var">add_inlines</span></a></span></span><span> </span><span id="local-6989586621681001689"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001689"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-282"></span><span>     </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001689"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">inlines :: VarSet
</span><a href="GHC.HsToCore.Coverage.html#inlines"><span class="hs-identifier hs-var">inlines</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; VarSet
</span><a href="GHC.HsToCore.Coverage.html#inlines"><span class="hs-identifier hs-var hs-var">inlines</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681001689"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">VarSet -&gt; [Id] -&gt; VarSet
</span><a href="GHC.Types.Var.Set.html#extendVarSetList"><span class="hs-operator hs-var">`extendVarSetList`</span></a></span><span>
</span><span id="line-283"></span><span>                      </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001687"><span class="hs-identifier hs-var">mid</span></a></span><span>
</span><span id="line-284"></span><span>                      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#ABE"><span class="hs-identifier hs-type">ABE</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abe_poly :: forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_poly"><span class="hs-identifier hs-var">abe_poly</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001686"><span class="annot"><span class="annottext">IdP GhcTc
</span><a href="#local-6989586621681001686"><span class="hs-identifier hs-var">pid</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">abe_mono :: forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_mono"><span class="hs-identifier hs-var">abe_mono</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001687"><span class="annot"><span class="annottext">IdP GhcTc
</span><a href="#local-6989586621681001687"><span class="hs-identifier hs-var">mid</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[ABExport GhcTc]
</span><a href="#local-6989586621681001703"><span class="hs-identifier hs-var">abs_exports</span></a></span><span>
</span><span id="line-285"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InlinePragma -&gt; Bool
</span><a href="GHC.Types.Basic.html#isInlinePragma"><span class="hs-identifier hs-var">isInlinePragma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; InlinePragma
</span><a href="GHC.Types.Id.html#idInlinePragma"><span class="hs-identifier hs-var">idInlinePragma</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001686"><span class="hs-identifier hs-var">pid</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-286"></span><span>
</span><span id="line-287"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-var">addTickLHsBind</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001683"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001683"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001682"><span class="annot"><span class="annottext">funBind :: HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001682"><span class="hs-identifier hs-var">funBind</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_id :: forall idL idR. HsBindLR idL idR -&gt; Located (IdP idL)
</span><a href="GHC.Hs.Binds.html#fun_id"><span class="hs-identifier hs-var">fun_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681001679"><span class="annot"><span class="annottext">IdP GhcTc
</span><a href="#local-6989586621681001679"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-288"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001678"><span class="annot"><span class="annottext">name :: FilePath
</span><a href="#local-6989586621681001678"><span class="hs-identifier hs-var hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; FilePath
forall a. NamedThing a =&gt; a -&gt; FilePath
</span><a href="GHC.Types.Name.html#getOccString"><span class="hs-identifier hs-var">getOccString</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001679"><span class="hs-identifier hs-var">id</span></a></span><span>
</span><span id="line-289"></span><span>  </span><span id="local-6989586621681001676"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001676"><span class="hs-identifier hs-var">decl_path</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#getPathEntry"><span class="hs-identifier hs-var">getPathEntry</span></a></span><span>
</span><span id="line-290"></span><span>  </span><span id="local-6989586621681001674"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001674"><span class="hs-identifier hs-var">density</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-291"></span><span>
</span><span id="line-292"></span><span>  </span><span id="local-6989586621681001672"><span class="annot"><span class="annottext">VarSet
</span><a href="#local-6989586621681001672"><span class="hs-identifier hs-var">inline_ids</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; VarSet) -&gt; TM TickTransEnv -&gt; TM VarSet
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; VarSet
</span><a href="GHC.HsToCore.Coverage.html#inlines"><span class="hs-identifier hs-var hs-var">inlines</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-293"></span><span>  </span><span class="hs-comment">-- See Note [inline sccs]</span><span>
</span><span id="line-294"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001669"><span class="annot"><span class="annottext">inline :: Bool
</span><a href="#local-6989586621681001669"><span class="hs-identifier hs-var hs-var">inline</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InlinePragma -&gt; Bool
</span><a href="GHC.Types.Basic.html#isInlinePragma"><span class="hs-identifier hs-var">isInlinePragma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; InlinePragma
</span><a href="GHC.Types.Id.html#idInlinePragma"><span class="hs-identifier hs-var">idInlinePragma</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001679"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-295"></span><span>                 </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001679"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; VarSet -&gt; Bool
</span><a href="GHC.Types.Var.Set.html#elemVarSet"><span class="hs-operator hs-var">`elemVarSet`</span></a></span><span> </span><span class="annot"><span class="annottext">VarSet
</span><a href="#local-6989586621681001672"><span class="hs-identifier hs-var">inline_ids</span></a></span><span>
</span><span id="line-296"></span><span>
</span><span id="line-297"></span><span>  </span><span class="hs-comment">-- See Note [inline sccs]</span><span>
</span><span id="line-298"></span><span>  </span><span id="local-6989586621681001666"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001666"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickishType
</span><a href="GHC.HsToCore.Coverage.html#tickishType"><span class="hs-identifier hs-var hs-var">tickishType</span></a></span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickishType) -&gt; TM TickTransEnv -&gt; TM TickishType
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-operator hs-var">`liftM`</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-299"></span><span>  </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001669"><span class="hs-identifier hs-var">inline</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681001666"><span class="hs-identifier hs-var">tickish</span></a></span><span> </span><span class="annot"><span class="annottext">TickishType -&gt; TickishType -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#ProfNotes"><span class="hs-identifier hs-var">ProfNotes</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001683"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001682"><span class="hs-identifier hs-var">funBind</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-300"></span><span>
</span><span id="line-301"></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621681001665"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001665"><span class="hs-identifier hs-var">fvs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681001664"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001664"><span class="hs-identifier hs-var">mg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span>
</span><span id="line-302"></span><span>        </span><span class="annot"><span class="annottext">TM (MatchGroup GhcTc (LHsExpr GhcTc))
-&gt; TM (FreeVars, MatchGroup GhcTc (LHsExpr GhcTc))
forall a. TM a -&gt; TM (FreeVars, a)
</span><a href="GHC.HsToCore.Coverage.html#getFreeVars"><span class="hs-identifier hs-var">getFreeVars</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (MatchGroup GhcTc (LHsExpr GhcTc))
 -&gt; TM (FreeVars, MatchGroup GhcTc (LHsExpr GhcTc)))
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
-&gt; TM (FreeVars, MatchGroup GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-303"></span><span>        </span><span class="annot"><span class="annottext">FilePath
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
forall a. FilePath -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#addPathEntry"><span class="hs-identifier hs-var">addPathEntry</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001678"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (MatchGroup GhcTc (LHsExpr GhcTc))
 -&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc)))
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-304"></span><span>        </span><span class="annot"><span class="annottext">Bool
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatchGroup"><span class="hs-identifier hs-var">addTickMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc -&gt; MatchGroup GhcTc (LHsExpr GhcTc)
forall idL idR. HsBindLR idL idR -&gt; MatchGroup idR (LHsExpr idR)
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var hs-var">fun_matches</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001682"><span class="hs-identifier hs-var">funBind</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-305"></span><span>
</span><span id="line-306"></span><span>  </span><span id="local-6989586621681001659"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001659"><span class="hs-identifier hs-var">blackListed</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; TM Bool
</span><a href="GHC.HsToCore.Coverage.html#isBlackListed"><span class="hs-identifier hs-var">isBlackListed</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001683"><span class="hs-identifier hs-var">pos</span></a></span><span>
</span><span id="line-307"></span><span>  </span><span id="local-6989586621681001657"><span class="annot"><span class="annottext">NameSet
</span><a href="#local-6989586621681001657"><span class="hs-identifier hs-var">exported_names</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; NameSet) -&gt; TM TickTransEnv -&gt; TM NameSet
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; NameSet
</span><a href="GHC.HsToCore.Coverage.html#exports"><span class="hs-identifier hs-var hs-var">exports</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-308"></span><span>
</span><span id="line-309"></span><span>  </span><span class="hs-comment">-- We don't want to generate code for blacklisted positions</span><span>
</span><span id="line-310"></span><span>  </span><span class="hs-comment">-- We don't want redundant ticks on simple pattern bindings</span><span>
</span><span id="line-311"></span><span>  </span><span class="hs-comment">-- We don't want to tick non-exported bindings in TickExportedFunctions</span><span>
</span><span id="line-312"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001656"><span class="annot"><span class="annottext">simple :: Bool
</span><a href="#local-6989586621681001656"><span class="hs-identifier hs-var hs-var">simple</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc -&gt; Bool
</span><a href="#local-6989586621681001655"><span class="hs-identifier hs-var">isSimplePatBind</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001682"><span class="hs-identifier hs-var">funBind</span></a></span><span>
</span><span id="line-313"></span><span>      </span><span id="local-6989586621681001654"><span class="annot"><span class="annottext">toplev :: Bool
</span><a href="#local-6989586621681001654"><span class="hs-identifier hs-var hs-var">toplev</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001676"><span class="hs-identifier hs-var">decl_path</span></a></span><span>
</span><span id="line-314"></span><span>      </span><span id="local-6989586621681001653"><span class="annot"><span class="annottext">exported :: Bool
</span><a href="#local-6989586621681001653"><span class="hs-identifier hs-var hs-var">exported</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Id.html#idName"><span class="hs-identifier hs-var">idName</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001679"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; NameSet -&gt; Bool
</span><a href="GHC.Types.Name.Set.html#elemNameSet"><span class="hs-operator hs-var">`elemNameSet`</span></a></span><span> </span><span class="annot"><span class="annottext">NameSet
</span><a href="#local-6989586621681001657"><span class="hs-identifier hs-var">exported_names</span></a></span><span>
</span><span id="line-315"></span><span>
</span><span id="line-316"></span><span>  </span><span id="local-6989586621681001652"><span class="annot"><span class="annottext">Maybe (Tickish Id)
</span><a href="#local-6989586621681001652"><span class="hs-identifier hs-var">tick</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001659"><span class="hs-identifier hs-var">blackListed</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span>
</span><span id="line-317"></span><span>               </span><span class="annot"><span class="annottext">TickDensity -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#shouldTickBind"><span class="hs-identifier hs-var">shouldTickBind</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001674"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001654"><span class="hs-identifier hs-var">toplev</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001653"><span class="hs-identifier hs-var">exported</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001656"><span class="hs-identifier hs-var">simple</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001669"><span class="hs-identifier hs-var">inline</span></a></span><span>
</span><span id="line-318"></span><span>             </span><span class="hs-keyword">then</span><span>
</span><span id="line-319"></span><span>                </span><span class="annot"><span class="annottext">TickDensity
-&gt; FilePath -&gt; SrcSpan -&gt; FreeVars -&gt; TM (Maybe (Tickish Id))
</span><a href="GHC.HsToCore.Coverage.html#bindTick"><span class="hs-identifier hs-var">bindTick</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001674"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001678"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001683"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001665"><span class="hs-identifier hs-var">fvs</span></a></span><span>
</span><span id="line-320"></span><span>             </span><span class="hs-keyword">else</span><span>
</span><span id="line-321"></span><span>                </span><span class="annot"><span class="annottext">Maybe (Tickish Id) -&gt; TM (Maybe (Tickish Id))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id)
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-322"></span><span>
</span><span id="line-323"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001650"><span class="annot"><span class="annottext">mbCons :: Maybe a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681001650"><span class="hs-identifier hs-var hs-var">mbCons</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([a] -&gt; [a]) -&gt; (a -&gt; [a] -&gt; [a]) -&gt; Maybe a -&gt; [a] -&gt; [a]
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">[a] -&gt; [a]
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">Prelude.id</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">:</span><span class="hs-special">)</span><span>
</span><span id="line-324"></span><span>  </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
 -&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc)))
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001683"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBindLR GhcTc GhcTc -&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001682"><span class="hs-identifier hs-var">funBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_matches :: MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var">fun_matches</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001664"><span class="hs-identifier hs-var">mg</span></a></span><span>
</span><span id="line-325"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_tick :: [Tickish Id]
</span><a href="GHC.Hs.Binds.html#fun_tick"><span class="hs-identifier hs-var">fun_tick</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id)
</span><a href="#local-6989586621681001652"><span class="hs-identifier hs-var">tick</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id) -&gt; [Tickish Id] -&gt; [Tickish Id]
forall {a}. Maybe a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681001650"><span class="hs-operator hs-var">`mbCons`</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc -&gt; [Tickish Id]
forall idL idR. HsBindLR idL idR -&gt; [Tickish Id]
</span><a href="GHC.Hs.Binds.html#fun_tick"><span class="hs-identifier hs-var hs-var">fun_tick</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001682"><span class="hs-identifier hs-var">funBind</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-326"></span><span>
</span><span id="line-327"></span><span>   </span><span class="hs-keyword">where</span><span>
</span><span id="line-328"></span><span>   </span><span class="hs-comment">-- a binding is a simple pattern binding if it is a funbind with</span><span>
</span><span id="line-329"></span><span>   </span><span class="hs-comment">-- zero patterns</span><span>
</span><span id="line-330"></span><span>   </span><span class="annot"><a href="#local-6989586621681001655"><span class="hs-identifier hs-type">isSimplePatBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-331"></span><span>   </span><span id="local-6989586621681001655"><span class="annot"><span class="annottext">isSimplePatBind :: HsBindLR GhcTc GhcTc -&gt; Bool
</span><a href="#local-6989586621681001655"><span class="hs-identifier hs-var hs-var">isSimplePatBind</span></a></span></span><span> </span><span id="local-6989586621681001645"><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001645"><span class="hs-identifier hs-var">funBind</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc) -&gt; Int
forall (id :: Pass) body. MatchGroup (GhcPass id) body -&gt; Int
</span><a href="GHC.Hs.Expr.html#matchGroupArity"><span class="hs-identifier hs-var">matchGroupArity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc -&gt; MatchGroup GhcTc (LHsExpr GhcTc)
forall idL idR. HsBindLR idL idR -&gt; MatchGroup idR (LHsExpr idR)
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var hs-var">fun_matches</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001645"><span class="hs-identifier hs-var">funBind</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-332"></span><span>
</span><span id="line-333"></span><span class="hs-comment">-- TODO: Revisit this</span><span>
</span><span id="line-334"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-var">addTickLHsBind</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001643"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001643"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001642"><span class="annot"><span class="annottext">pat :: HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001642"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatBind"><span class="hs-identifier hs-type">PatBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_lhs :: forall idL idR. HsBindLR idL idR -&gt; LPat idL
</span><a href="GHC.Hs.Binds.html#pat_lhs"><span class="hs-identifier hs-var">pat_lhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001639"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001639"><span class="hs-identifier hs-var">lhs</span></a></span></span><span>
</span><span id="line-335"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_rhs :: forall idL idR. HsBindLR idL idR -&gt; GRHSs idR (LHsExpr idR)
</span><a href="GHC.Hs.Binds.html#pat_rhs"><span class="hs-identifier hs-var">pat_rhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001637"><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001637"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-336"></span><span>
</span><span id="line-337"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001636"><span class="annot"><span class="annottext">simplePatId :: Maybe (IdP GhcTc)
</span><a href="#local-6989586621681001636"><span class="hs-identifier hs-var hs-var">simplePatId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcTc -&gt; Maybe (IdP GhcTc)
forall (x :: Pass). LPat (GhcPass x) -&gt; Maybe (IdP (GhcPass x))
</span><a href="GHC.Hs.Pat.html#isSimplePat"><span class="hs-identifier hs-var">isSimplePat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001639"><span class="hs-identifier hs-var">lhs</span></a></span><span>
</span><span id="line-338"></span><span>
</span><span id="line-339"></span><span>  </span><span class="hs-comment">-- TODO: better name for rhs's for non-simple patterns?</span><span>
</span><span id="line-340"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001634"><span class="annot"><span class="annottext">name :: FilePath
</span><a href="#local-6989586621681001634"><span class="hs-identifier hs-var hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; (Id -&gt; FilePath) -&gt; Maybe Id -&gt; FilePath
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;(...)&quot;</span></span><span> </span><span class="annot"><span class="annottext">Id -&gt; FilePath
forall a. NamedThing a =&gt; a -&gt; FilePath
</span><a href="GHC.Types.Name.html#getOccString"><span class="hs-identifier hs-var">getOccString</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Id
Maybe (IdP GhcTc)
</span><a href="#local-6989586621681001636"><span class="hs-identifier hs-var">simplePatId</span></a></span><span>
</span><span id="line-341"></span><span>
</span><span id="line-342"></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621681001633"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001633"><span class="hs-identifier hs-var">fvs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681001632"><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001632"><span class="hs-identifier hs-var">rhs'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM (GRHSs GhcTc (LHsExpr GhcTc))
-&gt; TM (FreeVars, GRHSs GhcTc (LHsExpr GhcTc))
forall a. TM a -&gt; TM (FreeVars, a)
</span><a href="GHC.HsToCore.Coverage.html#getFreeVars"><span class="hs-identifier hs-var">getFreeVars</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (GRHSs GhcTc (LHsExpr GhcTc))
 -&gt; TM (FreeVars, GRHSs GhcTc (LHsExpr GhcTc)))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
-&gt; TM (FreeVars, GRHSs GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
forall a. FilePath -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#addPathEntry"><span class="hs-identifier hs-var">addPathEntry</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001634"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (GRHSs GhcTc (LHsExpr GhcTc))
 -&gt; TM (GRHSs GhcTc (LHsExpr GhcTc)))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
-&gt; Bool
-&gt; GRHSs GhcTc (LHsExpr GhcTc)
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHSs"><span class="hs-identifier hs-var">addTickGRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001637"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-343"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001630"><span class="annot"><span class="annottext">pat' :: HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001630"><span class="hs-identifier hs-var hs-var">pat'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001642"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_rhs :: GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="GHC.Hs.Binds.html#pat_rhs"><span class="hs-identifier hs-var">pat_rhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001632"><span class="hs-identifier hs-var">rhs'</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-344"></span><span>
</span><span id="line-345"></span><span>  </span><span class="hs-comment">-- Should create ticks here?</span><span>
</span><span id="line-346"></span><span>  </span><span id="local-6989586621681001629"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001629"><span class="hs-identifier hs-var">density</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-347"></span><span>  </span><span id="local-6989586621681001628"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001628"><span class="hs-identifier hs-var">decl_path</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#getPathEntry"><span class="hs-identifier hs-var">getPathEntry</span></a></span><span>
</span><span id="line-348"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001627"><span class="annot"><span class="annottext">top_lev :: Bool
</span><a href="#local-6989586621681001627"><span class="hs-identifier hs-var hs-var">top_lev</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001628"><span class="hs-identifier hs-var">decl_path</span></a></span><span>
</span><span id="line-349"></span><span>  </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickDensity -&gt; Bool -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#shouldTickPatBind"><span class="hs-identifier hs-var">shouldTickPatBind</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001629"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001627"><span class="hs-identifier hs-var">top_lev</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-350"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001643"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001630"><span class="hs-identifier hs-var">pat'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-351"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-352"></span><span>
</span><span id="line-353"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001626"><span class="annot"><span class="annottext">mbCons :: Maybe a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681001626"><span class="hs-identifier hs-var hs-var">mbCons</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([a] -&gt; [a]) -&gt; (a -&gt; [a] -&gt; [a]) -&gt; Maybe a -&gt; [a] -&gt; [a]
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">[a] -&gt; [a]
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">:</span><span class="hs-special">)</span><span>
</span><span id="line-354"></span><span>
</span><span id="line-355"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001625"><span class="annot"><span class="annottext">[Tickish Id]
</span><a href="#local-6989586621681001625"><span class="hs-identifier hs-var">initial_rhs_ticks</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681001624"><span class="annot"><span class="annottext">[[Tickish Id]]
</span><a href="#local-6989586621681001624"><span class="hs-identifier hs-var">initial_patvar_tickss</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc -&gt; ([Tickish Id], [[Tickish Id]])
forall idL idR. HsBindLR idL idR -&gt; ([Tickish Id], [[Tickish Id]])
</span><a href="GHC.Hs.Binds.html#pat_ticks"><span class="hs-identifier hs-var hs-var">pat_ticks</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001630"><span class="hs-identifier hs-var">pat'</span></a></span><span>
</span><span id="line-356"></span><span>
</span><span id="line-357"></span><span>    </span><span class="hs-comment">-- Allocate the ticks</span><span>
</span><span id="line-358"></span><span>
</span><span id="line-359"></span><span>    </span><span id="local-6989586621681001622"><span class="annot"><span class="annottext">Maybe (Tickish Id)
</span><a href="#local-6989586621681001622"><span class="hs-identifier hs-var">rhs_tick</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TickDensity
-&gt; FilePath -&gt; SrcSpan -&gt; FreeVars -&gt; TM (Maybe (Tickish Id))
</span><a href="GHC.HsToCore.Coverage.html#bindTick"><span class="hs-identifier hs-var">bindTick</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001629"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001634"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001643"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001633"><span class="hs-identifier hs-var">fvs</span></a></span><span>
</span><span id="line-360"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001621"><span class="annot"><span class="annottext">rhs_ticks :: [Tickish Id]
</span><a href="#local-6989586621681001621"><span class="hs-identifier hs-var hs-var">rhs_ticks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id)
</span><a href="#local-6989586621681001622"><span class="hs-identifier hs-var">rhs_tick</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id) -&gt; [Tickish Id] -&gt; [Tickish Id]
forall {a}. Maybe a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681001626"><span class="hs-operator hs-var">`mbCons`</span></a></span><span> </span><span class="annot"><span class="annottext">[Tickish Id]
</span><a href="#local-6989586621681001625"><span class="hs-identifier hs-var">initial_rhs_ticks</span></a></span><span>
</span><span id="line-361"></span><span>
</span><span id="line-362"></span><span>    </span><span id="local-6989586621681001620"><span class="annot"><span class="annottext">[[Tickish Id]]
</span><a href="#local-6989586621681001620"><span class="hs-identifier hs-var">patvar_tickss</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe (IdP GhcTc)
</span><a href="#local-6989586621681001636"><span class="hs-identifier hs-var">simplePatId</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-363"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[[Tickish Id]] -&gt; TM [[Tickish Id]]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">[[Tickish Id]]
</span><a href="#local-6989586621681001624"><span class="hs-identifier hs-var">initial_patvar_tickss</span></a></span><span>
</span><span id="line-364"></span><span>      </span><span class="annot"><span class="annottext">Maybe (IdP GhcTc)
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-365"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001619"><span class="annot"><span class="annottext">patvars :: [FilePath]
</span><a href="#local-6989586621681001619"><span class="hs-identifier hs-var hs-var">patvars</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Id -&gt; FilePath) -&gt; [Id] -&gt; [FilePath]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; FilePath
forall a. NamedThing a =&gt; a -&gt; FilePath
</span><a href="GHC.Types.Name.html#getOccString"><span class="hs-identifier hs-var">getOccString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LPat GhcTc -&gt; [IdP GhcTc]
forall p. CollectPass p =&gt; LPat p -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier hs-var">collectPatBinders</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001639"><span class="hs-identifier hs-var">lhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-366"></span><span>        </span><span id="local-6989586621681001617"><span class="annot"><span class="annottext">[Maybe (Tickish Id)]
</span><a href="#local-6989586621681001617"><span class="hs-identifier hs-var">patvar_ticks</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(FilePath -&gt; TM (Maybe (Tickish Id)))
-&gt; [FilePath] -&gt; TM [Maybe (Tickish Id)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621681001615"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001615"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickDensity
-&gt; FilePath -&gt; SrcSpan -&gt; FreeVars -&gt; TM (Maybe (Tickish Id))
</span><a href="GHC.HsToCore.Coverage.html#bindTick"><span class="hs-identifier hs-var">bindTick</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001629"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001615"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001643"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001633"><span class="hs-identifier hs-var">fvs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001619"><span class="hs-identifier hs-var">patvars</span></a></span><span>
</span><span id="line-367"></span><span>        </span><span class="annot"><span class="annottext">[[Tickish Id]] -&gt; TM [[Tickish Id]]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span>
</span><span id="line-368"></span><span>          </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Maybe (Tickish Id) -&gt; [Tickish Id] -&gt; [Tickish Id])
-&gt; [Maybe (Tickish Id)] -&gt; [[Tickish Id]] -&gt; [[Tickish Id]]
forall a b c. (a -&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [c]
</span><a href="../../base/src/GHC.List.html#zipWith"><span class="hs-identifier hs-var">zipWith</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id) -&gt; [Tickish Id] -&gt; [Tickish Id]
forall {a}. Maybe a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681001626"><span class="hs-identifier hs-var">mbCons</span></a></span><span> </span><span class="annot"><span class="annottext">[Maybe (Tickish Id)]
</span><a href="#local-6989586621681001617"><span class="hs-identifier hs-var">patvar_ticks</span></a></span><span>
</span><span id="line-369"></span><span>                          </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[[Tickish Id]]
</span><a href="#local-6989586621681001624"><span class="hs-identifier hs-var">initial_patvar_tickss</span></a></span><span> </span><span class="annot"><span class="annottext">[[Tickish Id]] -&gt; [[Tickish Id]] -&gt; [[Tickish Id]]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[Tickish Id] -&gt; [[Tickish Id]]
forall a. a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#repeat"><span class="hs-identifier hs-var">repeat</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-370"></span><span>
</span><span id="line-371"></span><span>    </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
 -&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc)))
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001643"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBindLR GhcTc GhcTc -&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
-&gt; HsBindLR GhcTc GhcTc
-&gt; GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcTc GhcTc
</span><a href="#local-6989586621681001630"><span class="hs-identifier hs-var">pat'</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_ticks :: ([Tickish Id], [[Tickish Id]])
</span><a href="GHC.Hs.Binds.html#pat_ticks"><span class="hs-identifier hs-var">pat_ticks</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Tickish Id]
</span><a href="#local-6989586621681001621"><span class="hs-identifier hs-var">rhs_ticks</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[[Tickish Id]]
</span><a href="#local-6989586621681001620"><span class="hs-identifier hs-var">patvar_tickss</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-372"></span><span>
</span><span id="line-373"></span><span class="hs-comment">-- Only internal stuff, not from source, uses VarBind, so we ignore it.</span><span>
</span><span id="line-374"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-var">addTickLHsBind</span></a></span><span> </span><span id="local-6989586621681001612"><span class="annot"><span class="annottext">var_bind :: GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
</span><a href="#local-6989586621681001612"><span class="hs-identifier hs-var">var_bind</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#VarBind"><span class="hs-identifier hs-type">VarBind</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
</span><a href="#local-6989586621681001612"><span class="hs-identifier hs-var">var_bind</span></a></span><span>
</span><span id="line-375"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsBind"><span class="hs-identifier hs-var">addTickLHsBind</span></a></span><span> </span><span id="local-6989586621681001610"><span class="annot"><span class="annottext">patsyn_bind :: GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
</span><a href="#local-6989586621681001610"><span class="hs-identifier hs-var">patsyn_bind</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-type">PatSynBind</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
-&gt; TM (GenLocated SrcSpan (HsBindLR GhcTc GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcTc GhcTc)
</span><a href="#local-6989586621681001610"><span class="hs-identifier hs-var">patsyn_bind</span></a></span><span>
</span><span id="line-376"></span><span>
</span><span id="line-377"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#bindTick"><span class="hs-identifier hs-type">bindTick</span></a></span><span>
</span><span id="line-378"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#FreeVars"><span class="hs-identifier hs-type">FreeVars</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Tickish"><span class="hs-identifier hs-type">Tickish</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-379"></span><span id="bindTick"><span class="annot"><span class="annottext">bindTick :: TickDensity
-&gt; FilePath -&gt; SrcSpan -&gt; FreeVars -&gt; TM (Maybe (Tickish Id))
</span><a href="GHC.HsToCore.Coverage.html#bindTick"><span class="hs-identifier hs-var hs-var">bindTick</span></a></span></span><span> </span><span id="local-6989586621681001608"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001608"><span class="hs-identifier hs-var">density</span></a></span></span><span> </span><span id="local-6989586621681001607"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001607"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681001606"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001606"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001605"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001605"><span class="hs-identifier hs-var">fvs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-380"></span><span>  </span><span id="local-6989586621681001604"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001604"><span class="hs-identifier hs-var">decl_path</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#getPathEntry"><span class="hs-identifier hs-var">getPathEntry</span></a></span><span>
</span><span id="line-381"></span><span>  </span><span class="hs-keyword">let</span><span>
</span><span id="line-382"></span><span>      </span><span id="local-6989586621681001603"><span class="annot"><span class="annottext">toplev :: Bool
</span><a href="#local-6989586621681001603"><span class="hs-identifier hs-var hs-var">toplev</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001604"><span class="hs-identifier hs-var">decl_path</span></a></span><span>
</span><span id="line-383"></span><span>      </span><span id="local-6989586621681001602"><span class="annot"><span class="annottext">count_entries :: Bool
</span><a href="#local-6989586621681001602"><span class="hs-identifier hs-var hs-var">count_entries</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001603"><span class="hs-identifier hs-var">toplev</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001608"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity -&gt; TickDensity -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span><span>
</span><span id="line-384"></span><span>      </span><span id="local-6989586621681001601"><span class="annot"><span class="annottext">top_only :: Bool
</span><a href="#local-6989586621681001601"><span class="hs-identifier hs-var hs-var">top_only</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001608"><span class="hs-identifier hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity -&gt; TickDensity -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span><span>
</span><span id="line-385"></span><span>      </span><span id="local-6989586621681001599"><span class="annot"><span class="annottext">box_label :: BoxLabel
</span><a href="#local-6989586621681001599"><span class="hs-identifier hs-var hs-var">box_label</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001603"><span class="hs-identifier hs-var">toplev</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#TopLevelBox"><span class="hs-identifier hs-var">TopLevelBox</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001607"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-386"></span><span>                                </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#LocalBox"><span class="hs-identifier hs-var">LocalBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681001604"><span class="hs-identifier hs-var">decl_path</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; [FilePath] -&gt; [FilePath]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681001607"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-387"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-388"></span><span>  </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool -&gt; Bool -&gt; SrcSpan -&gt; FreeVars -&gt; TM (Maybe (Tickish Id))
</span><a href="GHC.HsToCore.Coverage.html#allocATickBox"><span class="hs-identifier hs-var">allocATickBox</span></a></span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681001599"><span class="hs-identifier hs-var">box_label</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001602"><span class="hs-identifier hs-var">count_entries</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001601"><span class="hs-identifier hs-var">top_only</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001606"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681001605"><span class="hs-identifier hs-var">fvs</span></a></span><span>
</span><span id="line-389"></span><span>
</span><span id="line-390"></span><span>
</span><span id="line-391"></span><span class="hs-comment">-- Note [inline sccs]</span><span>
</span><span id="line-392"></span><span class="hs-comment">--</span><span>
</span><span id="line-393"></span><span class="hs-comment">-- The reason not to add ticks to INLINE functions is that this is</span><span>
</span><span id="line-394"></span><span class="hs-comment">-- sometimes handy for avoiding adding a tick to a particular function</span><span>
</span><span id="line-395"></span><span class="hs-comment">-- (see #6131)</span><span>
</span><span id="line-396"></span><span class="hs-comment">--</span><span>
</span><span id="line-397"></span><span class="hs-comment">-- So for now we do not add any ticks to INLINE functions at all.</span><span>
</span><span id="line-398"></span><span class="hs-comment">--</span><span>
</span><span id="line-399"></span><span class="hs-comment">-- We used to use isAnyInlinePragma to figure out whether to avoid adding</span><span>
</span><span id="line-400"></span><span class="hs-comment">-- ticks for this purpose. However, #12962 indicates that this contradicts</span><span>
</span><span id="line-401"></span><span class="hs-comment">-- the documentation on profiling (which only mentions INLINE pragmas).</span><span>
</span><span id="line-402"></span><span class="hs-comment">-- So now we're more careful about what we avoid adding ticks to.</span><span>
</span><span id="line-403"></span><span>
</span><span id="line-404"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-405"></span><span class="hs-comment">-- Decorate an LHsExpr with ticks</span><span>
</span><span id="line-406"></span><span>
</span><span id="line-407"></span><span class="hs-comment">-- selectively add ticks to interesting expressions</span><span>
</span><span id="line-408"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-type">addTickLHsExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-409"></span><span id="addTickLHsExpr"><span class="annot"><span class="annottext">addTickLHsExpr :: LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var hs-var">addTickLHsExpr</span></a></span></span><span> </span><span id="local-6989586621681001594"><span class="annot"><span class="annottext">e :: LHsExpr GhcTc
</span><a href="#local-6989586621681001594"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001593"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001593"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001592"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001592"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-410"></span><span>  </span><span id="local-6989586621681001591"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001591"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-411"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001591"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-412"></span><span>    </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodBreakExpr"><span class="hs-identifier hs-var">isGoodBreakExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001592"><span class="hs-identifier hs-var">e0</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001589"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-413"></span><span>    </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001589"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-414"></span><span>    </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickCallSites"><span class="hs-identifier hs-var">TickCallSites</span></a></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-var">isCallSite</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001592"><span class="hs-identifier hs-var">e0</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001589"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-415"></span><span>    </span><span id="local-6989586621681001587"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001587"><span class="hs-identifier hs-var">_other</span></a></span></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001586"><span class="hs-identifier hs-var">dont_tick_it</span></a></span><span>
</span><span id="line-416"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-417"></span><span>   </span><span id="local-6989586621681001589"><span class="annot"><span class="annottext">tick_it :: TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001589"><span class="hs-identifier hs-var hs-var">tick_it</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001593"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001592"><span class="hs-identifier hs-var">e0</span></a></span><span>
</span><span id="line-418"></span><span>   </span><span id="local-6989586621681001586"><span class="annot"><span class="annottext">dont_tick_it :: TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001586"><span class="hs-identifier hs-var hs-var">dont_tick_it</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001594"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-419"></span><span>
</span><span id="line-420"></span><span class="hs-comment">-- Add a tick to an expression which is the RHS of an equation or a binding.</span><span>
</span><span id="line-421"></span><span class="hs-comment">-- We always consider these to be breakpoints, unless the expression is a 'let'</span><span>
</span><span id="line-422"></span><span class="hs-comment">-- (because the body will definitely have a tick somewhere).  ToDo: perhaps</span><span>
</span><span id="line-423"></span><span class="hs-comment">-- we should treat 'case' and 'if' the same way?</span><span>
</span><span id="line-424"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-type">addTickLHsExprRHS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-425"></span><span id="addTickLHsExprRHS"><span class="annot"><span class="annottext">addTickLHsExprRHS :: LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-var hs-var">addTickLHsExprRHS</span></a></span></span><span> </span><span id="local-6989586621681001580"><span class="annot"><span class="annottext">e :: LHsExpr GhcTc
</span><a href="#local-6989586621681001580"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001579"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001579"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001578"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001578"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-426"></span><span>  </span><span id="local-6989586621681001577"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001577"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-427"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001577"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-428"></span><span>     </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsLet"><span class="hs-identifier hs-type">HsLet</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001578"><span class="hs-identifier hs-var">e0</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001575"><span class="hs-identifier hs-var">dont_tick_it</span></a></span><span>
</span><span id="line-429"></span><span>                        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001574"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-430"></span><span>     </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001574"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-431"></span><span>     </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickCallSites"><span class="hs-identifier hs-var">TickCallSites</span></a></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-var">isCallSite</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001578"><span class="hs-identifier hs-var">e0</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001574"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-432"></span><span>     </span><span id="local-6989586621681001573"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001573"><span class="hs-identifier hs-var">_other</span></a></span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001575"><span class="hs-identifier hs-var">dont_tick_it</span></a></span><span>
</span><span id="line-433"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-434"></span><span>   </span><span id="local-6989586621681001574"><span class="annot"><span class="annottext">tick_it :: TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001574"><span class="hs-identifier hs-var hs-var">tick_it</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001579"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001578"><span class="hs-identifier hs-var">e0</span></a></span><span>
</span><span id="line-435"></span><span>   </span><span id="local-6989586621681001575"><span class="annot"><span class="annottext">dont_tick_it :: TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001575"><span class="hs-identifier hs-var hs-var">dont_tick_it</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001580"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-436"></span><span>
</span><span id="line-437"></span><span class="hs-comment">-- The inner expression of an evaluation context:</span><span>
</span><span id="line-438"></span><span class="hs-comment">--    let binds in [], ( [] )</span><span>
</span><span id="line-439"></span><span class="hs-comment">-- we never tick these if we're doing HPC, but otherwise</span><span>
</span><span id="line-440"></span><span class="hs-comment">-- we treat it like an ordinary expression.</span><span>
</span><span id="line-441"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsExprEvalInner"><span class="hs-identifier hs-type">addTickLHsExprEvalInner</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-442"></span><span id="addTickLHsExprEvalInner"><span class="annot"><span class="annottext">addTickLHsExprEvalInner :: LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprEvalInner"><span class="hs-identifier hs-var hs-var">addTickLHsExprEvalInner</span></a></span></span><span> </span><span id="local-6989586621681001571"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001571"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-443"></span><span>   </span><span id="local-6989586621681001570"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001570"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-444"></span><span>   </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001570"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-445"></span><span>     </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001571"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-446"></span><span>     </span><span id="local-6989586621681001569"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001569"><span class="hs-identifier hs-var">_otherwise</span></a></span></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001571"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-447"></span><span>
</span><span id="line-448"></span><span class="hs-comment">-- | A let body is treated differently from addTickLHsExprEvalInner</span><span>
</span><span id="line-449"></span><span class="hs-comment">-- above with TickForBreakPoints, because for breakpoints we always</span><span>
</span><span id="line-450"></span><span class="hs-comment">-- want to tick the body, even if it is not a redex.  See test</span><span>
</span><span id="line-451"></span><span class="hs-comment">-- break012.  This gives the user the opportunity to inspect the</span><span>
</span><span id="line-452"></span><span class="hs-comment">-- values of the let-bound variables.</span><span>
</span><span id="line-453"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsExprLetBody"><span class="hs-identifier hs-type">addTickLHsExprLetBody</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-454"></span><span id="addTickLHsExprLetBody"><span class="annot"><span class="annottext">addTickLHsExprLetBody :: LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprLetBody"><span class="hs-identifier hs-var hs-var">addTickLHsExprLetBody</span></a></span></span><span> </span><span id="local-6989586621681001567"><span class="annot"><span class="annottext">e :: LHsExpr GhcTc
</span><a href="#local-6989586621681001567"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001566"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001566"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001565"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001565"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-455"></span><span>  </span><span id="local-6989586621681001564"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001564"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-456"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001564"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-457"></span><span>     </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForBreakPoints"><span class="hs-identifier hs-var">TickForBreakPoints</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsLet"><span class="hs-identifier hs-type">HsLet</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001565"><span class="hs-identifier hs-var">e0</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001563"><span class="hs-identifier hs-var">dont_tick_it</span></a></span><span>
</span><span id="line-458"></span><span>                        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001562"><span class="hs-identifier hs-var">tick_it</span></a></span><span>
</span><span id="line-459"></span><span>     </span><span id="local-6989586621681001561"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001561"><span class="hs-identifier hs-var">_other</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprEvalInner"><span class="hs-identifier hs-var">addTickLHsExprEvalInner</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001567"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-460"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-461"></span><span>   </span><span id="local-6989586621681001562"><span class="annot"><span class="annottext">tick_it :: TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001562"><span class="hs-identifier hs-var hs-var">tick_it</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001566"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001565"><span class="hs-identifier hs-var">e0</span></a></span><span>
</span><span id="line-462"></span><span>   </span><span id="local-6989586621681001563"><span class="annot"><span class="annottext">dont_tick_it :: TM (LHsExpr GhcTc)
</span><a href="#local-6989586621681001563"><span class="hs-identifier hs-var hs-var">dont_tick_it</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001567"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-463"></span><span>
</span><span id="line-464"></span><span class="hs-comment">-- version of addTick that does not actually add a tick,</span><span>
</span><span id="line-465"></span><span class="hs-comment">-- because the scope of this tick is completely subsumed by</span><span>
</span><span id="line-466"></span><span class="hs-comment">-- another.</span><span>
</span><span id="line-467"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-type">addTickLHsExprNever</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-468"></span><span id="addTickLHsExprNever"><span class="annot"><span class="annottext">addTickLHsExprNever :: LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var hs-var">addTickLHsExprNever</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001560"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001560"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001559"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001559"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-469"></span><span>    </span><span id="local-6989586621681001558"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001558"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001559"><span class="hs-identifier hs-var">e0</span></a></span><span>
</span><span id="line-470"></span><span>    </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc))
-&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001560"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001558"><span class="hs-identifier hs-var">e1</span></a></span><span>
</span><span id="line-471"></span><span>
</span><span id="line-472"></span><span class="hs-comment">-- general heuristic: expressions which do not denote values are good</span><span>
</span><span id="line-473"></span><span class="hs-comment">-- break points</span><span>
</span><span id="line-474"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodBreakExpr"><span class="hs-identifier hs-type">isGoodBreakExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-475"></span><span id="isGoodBreakExpr"><span class="annot"><span class="annottext">isGoodBreakExpr :: HsExpr GhcTc -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodBreakExpr"><span class="hs-identifier hs-var hs-var">isGoodBreakExpr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-type">HsApp</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-476"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodBreakExpr"><span class="hs-identifier hs-var">isGoodBreakExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsAppType"><span class="hs-identifier hs-type">HsAppType</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-477"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodBreakExpr"><span class="hs-identifier hs-var">isGoodBreakExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#OpApp"><span class="hs-identifier hs-type">OpApp</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-478"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodBreakExpr"><span class="hs-identifier hs-var">isGoodBreakExpr</span></a></span><span> </span><span id="local-6989586621681001554"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001554"><span class="hs-identifier hs-var">_other</span></a></span></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-479"></span><span>
</span><span id="line-480"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-type">isCallSite</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-481"></span><span id="isCallSite"><span class="annot"><span class="annottext">isCallSite :: HsExpr GhcTc -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-var hs-var">isCallSite</span></a></span></span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-type">HsApp</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-482"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-var">isCallSite</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsAppType"><span class="hs-identifier hs-type">HsAppType</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-483"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-var">isCallSite</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#OpApp"><span class="hs-identifier hs-type">OpApp</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-484"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isCallSite"><span class="hs-identifier hs-var">isCallSite</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-485"></span><span>
</span><span id="line-486"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsExprOptAlt"><span class="hs-identifier hs-type">addTickLHsExprOptAlt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-487"></span><span id="addTickLHsExprOptAlt"><span class="annot"><span class="annottext">addTickLHsExprOptAlt :: Bool -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprOptAlt"><span class="hs-identifier hs-var hs-var">addTickLHsExprOptAlt</span></a></span></span><span> </span><span id="local-6989586621681001552"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001552"><span class="hs-identifier hs-var">oneOfMany</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001551"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001551"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001550"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001550"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-488"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickDensity
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a. TickDensity -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifDensity"><span class="hs-identifier hs-var">ifDensity</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>
</span><span id="line-489"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001552"><span class="hs-identifier hs-var">oneOfMany</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001551"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001550"><span class="hs-identifier hs-var">e0</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-490"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001551"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001550"><span class="hs-identifier hs-var">e0</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-491"></span><span>
</span><span id="line-492"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addBinTickLHsExpr"><span class="hs-identifier hs-type">addBinTickLHsExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-493"></span><span id="addBinTickLHsExpr"><span class="annot"><span class="annottext">addBinTickLHsExpr :: (Bool -&gt; BoxLabel) -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addBinTickLHsExpr"><span class="hs-identifier hs-var hs-var">addBinTickLHsExpr</span></a></span></span><span> </span><span id="local-6989586621681001547"><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681001547"><span class="hs-identifier hs-var">boxLabel</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001546"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001546"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001545"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001545"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-494"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickDensity
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a. TickDensity -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifDensity"><span class="hs-identifier hs-var">ifDensity</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>
</span><span id="line-495"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel)
-&gt; SrcSpan -&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocBinTickBox"><span class="hs-identifier hs-var">allocBinTickBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681001547"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001546"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001545"><span class="hs-identifier hs-var">e0</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-496"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001546"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001545"><span class="hs-identifier hs-var">e0</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-497"></span><span>
</span><span id="line-498"></span><span>
</span><span id="line-499"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-500"></span><span class="hs-comment">-- Decorate the body of an HsExpr with ticks.</span><span>
</span><span id="line-501"></span><span class="hs-comment">-- (Whether to put a tick around the whole expression was already decided,</span><span>
</span><span id="line-502"></span><span class="hs-comment">-- in the addTickLHsExpr family of functions.)</span><span>
</span><span id="line-503"></span><span>
</span><span id="line-504"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-type">addTickHsExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-505"></span><span id="addTickHsExpr"><span class="annot"><span class="annottext">addTickHsExpr :: HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var hs-var">addTickHsExpr</span></a></span></span><span> </span><span id="local-6989586621681001543"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001543"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-type">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">XVar GhcTc
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681001541"><span class="annot"><span class="annottext">IdP GhcTc
</span><a href="#local-6989586621681001541"><span class="hs-identifier hs-var">id</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="annot"><span class="annottext">Id -&gt; TM ()
</span><a href="GHC.HsToCore.Coverage.html#freeVar"><span class="hs-identifier hs-var">freeVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
IdP GhcTc
</span><a href="#local-6989586621681001541"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001543"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-506"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsUnboundVar"><span class="hs-identifier hs-type">HsUnboundVar</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; TM (HsExpr GhcTc)
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;addTickHsExpr.HsUnboundVar&quot;</span></span><span>
</span><span id="line-507"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001538"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001538"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsConLikeOut"><span class="hs-identifier hs-type">HsConLikeOut</span></a></span><span> </span><span class="annot"><span class="annottext">XConLikeOut GhcTc
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681001536"><span class="annot"><span class="annottext">ConLike
</span><a href="#local-6989586621681001536"><span class="hs-identifier hs-var">con</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-508"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681001535"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681001535"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ConLike -&gt; Maybe Id
</span><a href="GHC.Core.ConLike.html#conLikeWrapId_maybe"><span class="hs-identifier hs-var">conLikeWrapId_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">ConLike
</span><a href="#local-6989586621681001536"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="annot"><span class="annottext">Id -&gt; TM ()
</span><a href="GHC.HsToCore.Coverage.html#freeVar"><span class="hs-identifier hs-var">freeVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681001535"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001538"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-509"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001533"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001533"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsIPVar"><span class="hs-identifier hs-type">HsIPVar</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001533"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-510"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001531"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001531"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsOverLit"><span class="hs-identifier hs-type">HsOverLit</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001531"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-511"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001529"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001529"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsOverLabel"><span class="hs-identifier hs-type">HsOverLabel</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001529"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-512"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001527"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001527"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001527"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-513"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsLam"><span class="hs-identifier hs-type">HsLam</span></a></span><span> </span><span id="local-6989586621681001524"><span class="annot"><span class="annottext">XLam GhcTc
</span><a href="#local-6989586621681001524"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001523"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001523"><span class="hs-identifier hs-var">matchgroup</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(MatchGroup GhcTc (LHsExpr GhcTc) -&gt; HsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc)) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLam GhcTc -&gt; MatchGroup GhcTc (LHsExpr GhcTc) -&gt; HsExpr GhcTc
forall p. XLam p -&gt; MatchGroup p (LHsExpr p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLam"><span class="hs-identifier hs-var">HsLam</span></a></span><span> </span><span class="annot"><span class="annottext">XLam GhcTc
</span><a href="#local-6989586621681001524"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-514"></span><span>                                           </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatchGroup"><span class="hs-identifier hs-var">addTickMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001523"><span class="hs-identifier hs-var">matchgroup</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-515"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsLamCase"><span class="hs-identifier hs-type">HsLamCase</span></a></span><span> </span><span id="local-6989586621681001521"><span class="annot"><span class="annottext">XLamCase GhcTc
</span><a href="#local-6989586621681001521"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001520"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001520"><span class="hs-identifier hs-var">mgs</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(MatchGroup GhcTc (LHsExpr GhcTc) -&gt; HsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc)) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLamCase GhcTc -&gt; MatchGroup GhcTc (LHsExpr GhcTc) -&gt; HsExpr GhcTc
forall p. XLamCase p -&gt; MatchGroup p (LHsExpr p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLamCase"><span class="hs-identifier hs-var">HsLamCase</span></a></span><span> </span><span class="annot"><span class="annottext">XLamCase GhcTc
</span><a href="#local-6989586621681001521"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-516"></span><span>                                           </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatchGroup"><span class="hs-identifier hs-var">addTickMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001520"><span class="hs-identifier hs-var">mgs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-517"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-type">HsApp</span></a></span><span> </span><span id="local-6989586621681001519"><span class="annot"><span class="annottext">XApp GhcTc
</span><a href="#local-6989586621681001519"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001518"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001518"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001517"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001517"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XApp GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-var">HsApp</span></a></span><span> </span><span class="annot"><span class="annottext">XApp GhcTc
</span><a href="#local-6989586621681001519"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001518"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-518"></span><span>                                                      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span>      </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001517"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-519"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsAppType"><span class="hs-identifier hs-type">HsAppType</span></a></span><span> </span><span id="local-6989586621681001515"><span class="annot"><span class="annottext">XAppTypeE GhcTc
</span><a href="#local-6989586621681001515"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001514"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001514"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001513"><span class="annot"><span class="annottext">LHsWcType (NoGhcTc GhcTc)
</span><a href="#local-6989586621681001513"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Type
 -&gt; LHsExpr GhcTc -&gt; LHsWcType (GhcPass 'Renamed) -&gt; HsExpr GhcTc)
-&gt; TM Type
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsWcType (GhcPass 'Renamed))
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="annot"><span class="annottext">Type
-&gt; LHsExpr GhcTc -&gt; LHsWcType (GhcPass 'Renamed) -&gt; HsExpr GhcTc
forall p.
XAppTypeE p -&gt; LHsExpr p -&gt; LHsWcType (NoGhcTc p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsAppType"><span class="hs-identifier hs-var">HsAppType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; TM Type
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Type
XAppTypeE GhcTc
</span><a href="#local-6989586621681001515"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-520"></span><span>                                                      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001514"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-521"></span><span>                                                      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsWcType (GhcPass 'Renamed) -&gt; TM (LHsWcType (GhcPass 'Renamed))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LHsWcType (GhcPass 'Renamed)
LHsWcType (NoGhcTc GhcTc)
</span><a href="#local-6989586621681001513"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-522"></span><span>
</span><span id="line-523"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#OpApp"><span class="hs-identifier hs-type">OpApp</span></a></span><span> </span><span id="local-6989586621681001511"><span class="annot"><span class="annottext">XOpApp GhcTc
</span><a href="#local-6989586621681001511"><span class="hs-identifier hs-var">fix</span></a></span></span><span> </span><span id="local-6989586621681001510"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001510"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001509"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001509"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span id="local-6989586621681001508"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001508"><span class="hs-identifier hs-var">e3</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-524"></span><span>        </span><span class="annot"><span class="annottext">(Fixity
 -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM Fixity
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 a4 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; a4 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m a4 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM4"><span class="hs-identifier hs-var">liftM4</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity
-&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p.
XOpApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#OpApp"><span class="hs-identifier hs-var">OpApp</span></a></span><span>
</span><span id="line-525"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Fixity -&gt; TM Fixity
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Fixity
XOpApp GhcTc
</span><a href="#local-6989586621681001511"><span class="hs-identifier hs-var">fix</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-526"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001510"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-527"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001509"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-528"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001508"><span class="hs-identifier hs-var">e3</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-529"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#NegApp"><span class="hs-identifier hs-type">NegApp</span></a></span><span> </span><span id="local-6989586621681001505"><span class="annot"><span class="annottext">XNegApp GhcTc
</span><a href="#local-6989586621681001505"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001504"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001504"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001503"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001503"><span class="hs-identifier hs-var">neg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-530"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; SyntaxExprTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM SyntaxExprTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XNegApp GhcTc -&gt; LHsExpr GhcTc -&gt; SyntaxExpr GhcTc -&gt; HsExpr GhcTc
forall p. XNegApp p -&gt; LHsExpr p -&gt; SyntaxExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#NegApp"><span class="hs-identifier hs-var">NegApp</span></a></span><span> </span><span class="annot"><span class="annottext">XNegApp GhcTc
</span><a href="#local-6989586621681001505"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-531"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001504"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-532"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001503"><span class="hs-identifier hs-var">neg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-533"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-type">HsPar</span></a></span><span> </span><span id="local-6989586621681001499"><span class="annot"><span class="annottext">XPar GhcTc
</span><a href="#local-6989586621681001499"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001498"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001498"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-534"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPar GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XPar p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-var">HsPar</span></a></span><span> </span><span class="annot"><span class="annottext">XPar GhcTc
</span><a href="#local-6989586621681001499"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprEvalInner"><span class="hs-identifier hs-var">addTickLHsExprEvalInner</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001498"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-535"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SectionL"><span class="hs-identifier hs-type">SectionL</span></a></span><span> </span><span id="local-6989586621681001496"><span class="annot"><span class="annottext">XSectionL GhcTc
</span><a href="#local-6989586621681001496"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001495"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001495"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001494"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001494"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-536"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XSectionL GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XSectionL p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#SectionL"><span class="hs-identifier hs-var">SectionL</span></a></span><span> </span><span class="annot"><span class="annottext">XSectionL GhcTc
</span><a href="#local-6989586621681001496"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-537"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001495"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-538"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001494"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-539"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SectionR"><span class="hs-identifier hs-type">SectionR</span></a></span><span> </span><span id="local-6989586621681001492"><span class="annot"><span class="annottext">XSectionR GhcTc
</span><a href="#local-6989586621681001492"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001491"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001491"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001490"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001490"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-540"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XSectionR GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XSectionR p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#SectionR"><span class="hs-identifier hs-var">SectionR</span></a></span><span> </span><span class="annot"><span class="annottext">XSectionR GhcTc
</span><a href="#local-6989586621681001492"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-541"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001491"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-542"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001490"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-543"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ExplicitTuple"><span class="hs-identifier hs-type">ExplicitTuple</span></a></span><span> </span><span id="local-6989586621681001488"><span class="annot"><span class="annottext">XExplicitTuple GhcTc
</span><a href="#local-6989586621681001488"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001487"><span class="annot"><span class="annottext">[LHsTupArg GhcTc]
</span><a href="#local-6989586621681001487"><span class="hs-identifier hs-var">es</span></a></span></span><span> </span><span id="local-6989586621681001486"><span class="annot"><span class="annottext">Boxity
</span><a href="#local-6989586621681001486"><span class="hs-identifier hs-var">boxity</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-544"></span><span>        </span><span class="annot"><span class="annottext">([LHsTupArg GhcTc] -&gt; Boxity -&gt; HsExpr GhcTc)
-&gt; TM [LHsTupArg GhcTc] -&gt; TM Boxity -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XExplicitTuple GhcTc -&gt; [LHsTupArg GhcTc] -&gt; Boxity -&gt; HsExpr GhcTc
forall p. XExplicitTuple p -&gt; [LHsTupArg p] -&gt; Boxity -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ExplicitTuple"><span class="hs-identifier hs-var">ExplicitTuple</span></a></span><span> </span><span class="annot"><span class="annottext">XExplicitTuple GhcTc
</span><a href="#local-6989586621681001488"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-545"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LHsTupArg GhcTc -&gt; TM (LHsTupArg GhcTc))
-&gt; [LHsTupArg GhcTc] -&gt; TM [LHsTupArg GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">LHsTupArg GhcTc -&gt; TM (LHsTupArg GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickTupArg"><span class="hs-identifier hs-var">addTickTupArg</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsTupArg GhcTc]
</span><a href="#local-6989586621681001487"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-546"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Boxity -&gt; TM Boxity
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Boxity
</span><a href="#local-6989586621681001486"><span class="hs-identifier hs-var">boxity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-547"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ExplicitSum"><span class="hs-identifier hs-type">ExplicitSum</span></a></span><span> </span><span id="local-6989586621681001483"><span class="annot"><span class="annottext">XExplicitSum GhcTc
</span><a href="#local-6989586621681001483"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681001482"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001482"><span class="hs-identifier hs-var">tag</span></a></span></span><span> </span><span id="local-6989586621681001481"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001481"><span class="hs-identifier hs-var">arity</span></a></span></span><span> </span><span id="local-6989586621681001480"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001480"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-548"></span><span>        </span><span id="local-6989586621681001479"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001479"><span class="hs-identifier hs-var">e'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001480"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-549"></span><span>        </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XExplicitSum GhcTc -&gt; Int -&gt; Int -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XExplicitSum p -&gt; Int -&gt; Int -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ExplicitSum"><span class="hs-identifier hs-var">ExplicitSum</span></a></span><span> </span><span class="annot"><span class="annottext">XExplicitSum GhcTc
</span><a href="#local-6989586621681001483"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001482"><span class="hs-identifier hs-var">tag</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001481"><span class="hs-identifier hs-var">arity</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001479"><span class="hs-identifier hs-var">e'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-550"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCase"><span class="hs-identifier hs-type">HsCase</span></a></span><span> </span><span id="local-6989586621681001477"><span class="annot"><span class="annottext">XCase GhcTc
</span><a href="#local-6989586621681001477"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001476"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001476"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001475"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001475"><span class="hs-identifier hs-var">mgs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-551"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; MatchGroup GhcTc (LHsExpr GhcTc) -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCase GhcTc
-&gt; LHsExpr GhcTc
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; HsExpr GhcTc
forall p.
XCase p -&gt; LHsExpr p -&gt; MatchGroup p (LHsExpr p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsCase"><span class="hs-identifier hs-var">HsCase</span></a></span><span> </span><span class="annot"><span class="annottext">XCase GhcTc
</span><a href="#local-6989586621681001477"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-552"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001476"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- not an EvalInner; e might not necessarily</span><span>
</span><span id="line-553"></span><span>                                   </span><span class="hs-comment">-- be evaluated.</span><span>
</span><span id="line-554"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatchGroup"><span class="hs-identifier hs-var">addTickMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001475"><span class="hs-identifier hs-var">mgs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-555"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsIf"><span class="hs-identifier hs-type">HsIf</span></a></span><span> </span><span id="local-6989586621681001473"><span class="annot"><span class="annottext">XIf GhcTc
</span><a href="#local-6989586621681001473"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001472"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001472"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001471"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001471"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span id="local-6989586621681001470"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001470"><span class="hs-identifier hs-var">e3</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-556"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XIf GhcTc
-&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XIf p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsIf"><span class="hs-identifier hs-var">HsIf</span></a></span><span> </span><span class="annot"><span class="annottext">XIf GhcTc
</span><a href="#local-6989586621681001473"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-557"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel) -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addBinTickLHsExpr"><span class="hs-identifier hs-var">addBinTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CondBox -&gt; Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#BinBox"><span class="hs-identifier hs-var">BinBox</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#CondBinBox"><span class="hs-identifier hs-var">CondBinBox</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001472"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-558"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprOptAlt"><span class="hs-identifier hs-var">addTickLHsExprOptAlt</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001471"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-559"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprOptAlt"><span class="hs-identifier hs-var">addTickLHsExprOptAlt</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001470"><span class="hs-identifier hs-var">e3</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-560"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsMultiIf"><span class="hs-identifier hs-type">HsMultiIf</span></a></span><span> </span><span id="local-6989586621681001466"><span class="annot"><span class="annottext">XMultiIf GhcTc
</span><a href="#local-6989586621681001466"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681001465"><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001465"><span class="hs-identifier hs-var">alts</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-561"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001464"><span class="annot"><span class="annottext">isOneOfMany :: Bool
</span><a href="#local-6989586621681001464"><span class="hs-identifier hs-var hs-var">isOneOfMany</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001465"><span class="hs-identifier hs-var">alts</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">LGRHS GhcTc (LHsExpr GhcTc)
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-562"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001463"><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001463"><span class="hs-identifier hs-var">alts'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LGRHS GhcTc (LHsExpr GhcTc) -&gt; TM (LGRHS GhcTc (LHsExpr GhcTc)))
-&gt; [LGRHS GhcTc (LHsExpr GhcTc)]
-&gt; TM [LGRHS GhcTc (LHsExpr GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc)))
-&gt; LGRHS GhcTc (LHsExpr GhcTc) -&gt; TM (LGRHS GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="annot"><span class="annottext">((GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc)))
 -&gt; LGRHS GhcTc (LHsExpr GhcTc) -&gt; TM (LGRHS GhcTc (LHsExpr GhcTc)))
-&gt; (GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc)))
-&gt; LGRHS GhcTc (LHsExpr GhcTc)
-&gt; TM (LGRHS GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
-&gt; Bool
-&gt; GRHS GhcTc (LHsExpr GhcTc)
-&gt; TM (GRHS GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHS"><span class="hs-identifier hs-var">addTickGRHS</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001464"><span class="hs-identifier hs-var">isOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001465"><span class="hs-identifier hs-var">alts</span></a></span><span>
</span><span id="line-563"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(HsExpr GhcTc -&gt; TM (HsExpr GhcTc))
-&gt; HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XMultiIf GhcTc -&gt; [LGRHS GhcTc (LHsExpr GhcTc)] -&gt; HsExpr GhcTc
forall p. XMultiIf p -&gt; [LGRHS p (LHsExpr p)] -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsMultiIf"><span class="hs-identifier hs-var">HsMultiIf</span></a></span><span> </span><span class="annot"><span class="annottext">XMultiIf GhcTc
</span><a href="#local-6989586621681001466"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001463"><span class="hs-identifier hs-var">alts'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-564"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsLet"><span class="hs-identifier hs-type">HsLet</span></a></span><span> </span><span id="local-6989586621681001460"><span class="annot"><span class="annottext">XLet GhcTc
</span><a href="#local-6989586621681001460"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001459"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001459"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001458"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001458"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681001457"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001457"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-565"></span><span>        </span><span class="annot"><span class="annottext">[Id] -&gt; TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; [IdP GhcTc]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001458"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-566"></span><span>          </span><span class="annot"><span class="annottext">(HsLocalBinds GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (HsLocalBinds GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLet GhcTc
-&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
-&gt; LHsExpr GhcTc
-&gt; HsExpr GhcTc
forall p. XLet p -&gt; LHsLocalBinds p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLet"><span class="hs-identifier hs-var">HsLet</span></a></span><span> </span><span class="annot"><span class="annottext">XLet GhcTc
</span><a href="#local-6989586621681001460"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsLocalBinds GhcTc)
 -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; (HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc))
-&gt; HsLocalBinds GhcTc
-&gt; LHsExpr GhcTc
-&gt; HsExpr GhcTc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001459"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-567"></span><span>                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001458"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- to think about: !patterns.</span><span>
</span><span id="line-568"></span><span>                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprLetBody"><span class="hs-identifier hs-var">addTickLHsExprLetBody</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001457"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-569"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsDo"><span class="hs-identifier hs-type">HsDo</span></a></span><span> </span><span id="local-6989586621681001451"><span class="annot"><span class="annottext">XDo GhcTc
</span><a href="#local-6989586621681001451"><span class="hs-identifier hs-var">srcloc</span></a></span></span><span> </span><span id="local-6989586621681001450"><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><a href="#local-6989586621681001450"><span class="hs-identifier hs-var">cxt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001449"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001449"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001448"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001448"><span class="hs-identifier hs-var">stmts</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-570"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001447"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001447"><span class="hs-identifier hs-var">stmts'</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM () -&gt; TM ([ExprLStmt GhcTc], ())
forall a.
Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM a -&gt; TM ([ExprLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts%27"><span class="hs-identifier hs-var">addTickLStmts'</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001445"><span class="hs-identifier hs-var">forQual</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001448"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">() -&gt; TM ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-571"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XDo GhcTc
-&gt; HsStmtContext (GhcPass 'Renamed)
-&gt; GenLocated SrcSpan [ExprLStmt GhcTc]
-&gt; HsExpr GhcTc
forall p.
XDo p
-&gt; HsStmtContext (GhcPass 'Renamed)
-&gt; Located [ExprLStmt p]
-&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsDo"><span class="hs-identifier hs-var">HsDo</span></a></span><span> </span><span class="annot"><span class="annottext">XDo GhcTc
</span><a href="#local-6989586621681001451"><span class="hs-identifier hs-var">srcloc</span></a></span><span> </span><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><a href="#local-6989586621681001450"><span class="hs-identifier hs-var">cxt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; [ExprLStmt GhcTc] -&gt; GenLocated SrcSpan [ExprLStmt GhcTc]
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001449"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001447"><span class="hs-identifier hs-var">stmts'</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-572"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-573"></span><span>        </span><span id="local-6989586621681001445"><span class="annot"><span class="annottext">forQual :: Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001445"><span class="hs-identifier hs-var hs-var">forQual</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><a href="#local-6989586621681001450"><span class="hs-identifier hs-var">cxt</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-574"></span><span>                    </span><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><a href="GHC.Hs.Expr.html#ListComp"><span class="hs-identifier hs-var">ListComp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel))
-&gt; (Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox -&gt; Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#BinBox"><span class="hs-identifier hs-var">BinBox</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#QualBinBox"><span class="hs-identifier hs-var">QualBinBox</span></a></span><span>
</span><span id="line-575"></span><span>                    </span><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><span class="hs-identifier">_</span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-576"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ExplicitList"><span class="hs-identifier hs-type">ExplicitList</span></a></span><span> </span><span id="local-6989586621681001441"><span class="annot"><span class="annottext">XExplicitList GhcTc
</span><a href="#local-6989586621681001441"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681001440"><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
</span><a href="#local-6989586621681001440"><span class="hs-identifier hs-var">wit</span></a></span></span><span> </span><span id="local-6989586621681001439"><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621681001439"><span class="hs-identifier hs-var">es</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-577"></span><span>        </span><span class="annot"><span class="annottext">(Type -&gt; Maybe SyntaxExprTc -&gt; [LHsExpr GhcTc] -&gt; HsExpr GhcTc)
-&gt; TM Type
-&gt; TM (Maybe SyntaxExprTc)
-&gt; TM [LHsExpr GhcTc]
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; Maybe SyntaxExprTc -&gt; [LHsExpr GhcTc] -&gt; HsExpr GhcTc
forall p.
XExplicitList p -&gt; Maybe (SyntaxExpr p) -&gt; [LHsExpr p] -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ExplicitList"><span class="hs-identifier hs-var">ExplicitList</span></a></span><span>
</span><span id="line-578"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; TM Type
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Type
XExplicitList GhcTc
</span><a href="#local-6989586621681001441"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-579"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
</span><a href="#local-6989586621681001438"><span class="hs-identifier hs-var">addTickWit</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
Maybe SyntaxExprTc
</span><a href="#local-6989586621681001440"><span class="hs-identifier hs-var">wit</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-580"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc))
-&gt; [LHsExpr GhcTc] -&gt; TM [LHsExpr GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621681001439"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-581"></span><span>             </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681001438"><span class="annot"><span class="annottext">addTickWit :: Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
</span><a href="#local-6989586621681001438"><span class="hs-identifier hs-var hs-var">addTickWit</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-582"></span><span>                   </span><span class="annot"><a href="#local-6989586621681001438"><span class="hs-identifier hs-var">addTickWit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681001434"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001434"><span class="hs-identifier hs-var">fln</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-583"></span><span>                     </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621681001433"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001433"><span class="hs-identifier hs-var">fln'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001434"><span class="hs-identifier hs-var">fln</span></a></span><span>
</span><span id="line-584"></span><span>                          </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SyntaxExprTc -&gt; Maybe SyntaxExprTc
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001433"><span class="hs-identifier hs-var">fln'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-585"></span><span>
</span><span id="line-586"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsStatic"><span class="hs-identifier hs-type">HsStatic</span></a></span><span> </span><span id="local-6989586621681001431"><span class="annot"><span class="annottext">XStatic GhcTc
</span><a href="#local-6989586621681001431"><span class="hs-identifier hs-var">fvs</span></a></span></span><span> </span><span id="local-6989586621681001430"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001430"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XStatic GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XStatic p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsStatic"><span class="hs-identifier hs-var">HsStatic</span></a></span><span> </span><span class="annot"><span class="annottext">XStatic GhcTc
</span><a href="#local-6989586621681001431"><span class="hs-identifier hs-var">fvs</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001430"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-587"></span><span>
</span><span id="line-588"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001428"><span class="annot"><span class="annottext">expr :: HsExpr GhcTc
</span><a href="#local-6989586621681001428"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#RecordCon"><span class="hs-identifier hs-type">RecordCon</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">rcon_flds :: forall p. HsExpr p -&gt; HsRecordBinds p
</span><a href="GHC.Hs.Expr.html#rcon_flds"><span class="hs-identifier hs-var">rcon_flds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001425"><span class="annot"><span class="annottext">HsRecordBinds GhcTc
</span><a href="#local-6989586621681001425"><span class="hs-identifier hs-var">rec_binds</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-589"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001424"><span class="annot"><span class="annottext">HsRecordBinds GhcTc
</span><a href="#local-6989586621681001424"><span class="hs-identifier hs-var">rec_binds'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsRecordBinds GhcTc -&gt; TM (HsRecordBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsRecordBinds"><span class="hs-identifier hs-var">addTickHsRecordBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsRecordBinds GhcTc
</span><a href="#local-6989586621681001425"><span class="hs-identifier hs-var">rec_binds</span></a></span><span>
</span><span id="line-590"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001428"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">rcon_flds :: HsRecordBinds GhcTc
</span><a href="GHC.Hs.Expr.html#rcon_flds"><span class="hs-identifier hs-var">rcon_flds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsRecordBinds GhcTc
</span><a href="#local-6989586621681001424"><span class="hs-identifier hs-var">rec_binds'</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-591"></span><span>
</span><span id="line-592"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001422"><span class="annot"><span class="annottext">expr :: HsExpr GhcTc
</span><a href="#local-6989586621681001422"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#RecordUpd"><span class="hs-identifier hs-type">RecordUpd</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">rupd_expr :: forall p. HsExpr p -&gt; LHsExpr p
</span><a href="GHC.Hs.Expr.html#rupd_expr"><span class="hs-identifier hs-var">rupd_expr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001419"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001419"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">rupd_flds :: forall p. HsExpr p -&gt; [LHsRecUpdField p]
</span><a href="GHC.Hs.Expr.html#rupd_flds"><span class="hs-identifier hs-var">rupd_flds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001417"><span class="annot"><span class="annottext">[LHsRecUpdField GhcTc]
</span><a href="#local-6989586621681001417"><span class="hs-identifier hs-var">flds</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-593"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001416"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001416"><span class="hs-identifier hs-var">e'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001419"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-594"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001415"><span class="annot"><span class="annottext">[LHsRecUpdField GhcTc]
</span><a href="#local-6989586621681001415"><span class="hs-identifier hs-var">flds'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LHsRecUpdField GhcTc -&gt; TM (LHsRecUpdField GhcTc))
-&gt; [LHsRecUpdField GhcTc] -&gt; TM [LHsRecUpdField GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">LHsRecUpdField GhcTc -&gt; TM (LHsRecUpdField GhcTc)
forall id.
LHsRecField' id (LHsExpr GhcTc)
-&gt; TM (LHsRecField' id (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickHsRecField"><span class="hs-identifier hs-var">addTickHsRecField</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsRecUpdField GhcTc]
</span><a href="#local-6989586621681001417"><span class="hs-identifier hs-var">flds</span></a></span><span>
</span><span id="line-595"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001422"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">rupd_expr :: LHsExpr GhcTc
</span><a href="GHC.Hs.Expr.html#rupd_expr"><span class="hs-identifier hs-var">rupd_expr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001416"><span class="hs-identifier hs-var">e'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">rupd_flds :: [LHsRecUpdField GhcTc]
</span><a href="GHC.Hs.Expr.html#rupd_flds"><span class="hs-identifier hs-var">rupd_flds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LHsRecUpdField GhcTc]
</span><a href="#local-6989586621681001415"><span class="hs-identifier hs-var">flds'</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-596"></span><span>
</span><span id="line-597"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprWithTySig"><span class="hs-identifier hs-type">ExprWithTySig</span></a></span><span> </span><span id="local-6989586621681001412"><span class="annot"><span class="annottext">XExprWithTySig GhcTc
</span><a href="#local-6989586621681001412"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001411"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001411"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001410"><span class="annot"><span class="annottext">LHsSigWcType (NoGhcTc GhcTc)
</span><a href="#local-6989586621681001410"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-598"></span><span>        </span><span class="annot"><span class="annottext">(NoExtField
 -&gt; LHsExpr GhcTc
 -&gt; LHsSigWcType (GhcPass 'Renamed)
 -&gt; HsExpr GhcTc)
-&gt; TM NoExtField
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsSigWcType (GhcPass 'Renamed))
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
-&gt; LHsExpr GhcTc -&gt; LHsSigWcType (GhcPass 'Renamed) -&gt; HsExpr GhcTc
forall p.
XExprWithTySig p
-&gt; LHsExpr p -&gt; LHsSigWcType (NoGhcTc p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ExprWithTySig"><span class="hs-identifier hs-var">ExprWithTySig</span></a></span><span>
</span><span id="line-599"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NoExtField -&gt; TM NoExtField
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XExprWithTySig GhcTc
</span><a href="#local-6989586621681001412"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-600"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001411"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- No need to tick the inner expression</span><span>
</span><span id="line-601"></span><span>                                        </span><span class="hs-comment">-- for expressions with signatures</span><span>
</span><span id="line-602"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsSigWcType (GhcPass 'Renamed)
-&gt; TM (LHsSigWcType (GhcPass 'Renamed))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LHsSigWcType (GhcPass 'Renamed)
LHsSigWcType (NoGhcTc GhcTc)
</span><a href="#local-6989586621681001410"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-603"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ArithSeq"><span class="hs-identifier hs-type">ArithSeq</span></a></span><span> </span><span id="local-6989586621681001408"><span class="annot"><span class="annottext">XArithSeq GhcTc
</span><a href="#local-6989586621681001408"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681001407"><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
</span><a href="#local-6989586621681001407"><span class="hs-identifier hs-var">wit</span></a></span></span><span> </span><span id="local-6989586621681001406"><span class="annot"><span class="annottext">ArithSeqInfo GhcTc
</span><a href="#local-6989586621681001406"><span class="hs-identifier hs-var">arith_seq</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-604"></span><span>        </span><span class="annot"><span class="annottext">(HsExpr GhcTc
 -&gt; Maybe SyntaxExprTc -&gt; ArithSeqInfo GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (HsExpr GhcTc)
-&gt; TM (Maybe SyntaxExprTc)
-&gt; TM (ArithSeqInfo GhcTc)
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
-&gt; Maybe SyntaxExprTc -&gt; ArithSeqInfo GhcTc -&gt; HsExpr GhcTc
forall p.
XArithSeq p -&gt; Maybe (SyntaxExpr p) -&gt; ArithSeqInfo p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ArithSeq"><span class="hs-identifier hs-var">ArithSeq</span></a></span><span>
</span><span id="line-605"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">XArithSeq GhcTc
HsExpr GhcTc
</span><a href="#local-6989586621681001408"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-606"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
</span><a href="#local-6989586621681001405"><span class="hs-identifier hs-var">addTickWit</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
Maybe SyntaxExprTc
</span><a href="#local-6989586621681001407"><span class="hs-identifier hs-var">wit</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-607"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ArithSeqInfo GhcTc -&gt; TM (ArithSeqInfo GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickArithSeqInfo"><span class="hs-identifier hs-var">addTickArithSeqInfo</span></a></span><span> </span><span class="annot"><span class="annottext">ArithSeqInfo GhcTc
</span><a href="#local-6989586621681001406"><span class="hs-identifier hs-var">arith_seq</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-608"></span><span>             </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681001405"><span class="annot"><span class="annottext">addTickWit :: Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
</span><a href="#local-6989586621681001405"><span class="hs-identifier hs-var hs-var">addTickWit</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-609"></span><span>                   </span><span class="annot"><a href="#local-6989586621681001405"><span class="hs-identifier hs-var">addTickWit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681001400"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001400"><span class="hs-identifier hs-var">fl</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621681001399"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001399"><span class="hs-identifier hs-var">fl'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001400"><span class="hs-identifier hs-var">fl</span></a></span><span>
</span><span id="line-610"></span><span>                                             </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SyntaxExprTc -&gt; Maybe SyntaxExprTc
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001399"><span class="hs-identifier hs-var">fl'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-611"></span><span>
</span><span id="line-612"></span><span class="hs-comment">-- We might encounter existing ticks (multiple Coverage passes)</span><span>
</span><span id="line-613"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsTick"><span class="hs-identifier hs-type">HsTick</span></a></span><span> </span><span id="local-6989586621681001397"><span class="annot"><span class="annottext">XTick GhcTc
</span><a href="#local-6989586621681001397"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001396"><span class="annot"><span class="annottext">Tickish (IdP GhcTc)
</span><a href="#local-6989586621681001396"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621681001395"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001395"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-614"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XTick GhcTc -&gt; Tickish (IdP GhcTc) -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XTick p -&gt; Tickish (IdP p) -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsTick"><span class="hs-identifier hs-var">HsTick</span></a></span><span> </span><span class="annot"><span class="annottext">XTick GhcTc
</span><a href="#local-6989586621681001397"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Tickish (IdP GhcTc)
</span><a href="#local-6989586621681001396"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001395"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-615"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsBinTick"><span class="hs-identifier hs-type">HsBinTick</span></a></span><span> </span><span id="local-6989586621681001393"><span class="annot"><span class="annottext">XBinTick GhcTc
</span><a href="#local-6989586621681001393"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001392"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001392"><span class="hs-identifier hs-var">t0</span></a></span></span><span> </span><span id="local-6989586621681001391"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001391"><span class="hs-identifier hs-var">t1</span></a></span></span><span> </span><span id="local-6989586621681001390"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001390"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-616"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBinTick GhcTc -&gt; Int -&gt; Int -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XBinTick p -&gt; Int -&gt; Int -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsBinTick"><span class="hs-identifier hs-var">HsBinTick</span></a></span><span> </span><span class="annot"><span class="annottext">XBinTick GhcTc
</span><a href="#local-6989586621681001393"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001392"><span class="hs-identifier hs-var">t0</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681001391"><span class="hs-identifier hs-var">t1</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprNever"><span class="hs-identifier hs-var">addTickLHsExprNever</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001390"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-617"></span><span>
</span><span id="line-618"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsPragE"><span class="hs-identifier hs-type">HsPragE</span></a></span><span> </span><span class="annot"><span class="annottext">XPragE GhcTc
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsPragTick"><span class="hs-identifier hs-type">HsPragTick</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001387"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001387"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001386"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001386"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-619"></span><span>    </span><span id="local-6989586621681001385"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001385"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001387"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-620"></span><span>                </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001386"><span class="hs-identifier hs-var">e0</span></a></span><span>
</span><span id="line-621"></span><span>    </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(HsExpr GhcTc -&gt; TM (HsExpr GhcTc))
-&gt; HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; HsExpr GhcTc
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001385"><span class="hs-identifier hs-var">e2</span></a></span><span>
</span><span id="line-622"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsPragE"><span class="hs-identifier hs-type">HsPragE</span></a></span><span> </span><span id="local-6989586621681001383"><span class="annot"><span class="annottext">XPragE GhcTc
</span><a href="#local-6989586621681001383"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001382"><span class="annot"><span class="annottext">HsPragE GhcTc
</span><a href="#local-6989586621681001382"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621681001381"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001381"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-623"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPragE GhcTc -&gt; HsPragE GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XPragE p -&gt; HsPragE p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsPragE"><span class="hs-identifier hs-var">HsPragE</span></a></span><span> </span><span class="annot"><span class="annottext">XPragE GhcTc
</span><a href="#local-6989586621681001383"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">HsPragE GhcTc
</span><a href="#local-6989586621681001382"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001381"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-624"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001380"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001380"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsBracket"><span class="hs-identifier hs-type">HsBracket</span></a></span><span>     </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001380"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-625"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001378"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001378"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsTcBracketOut"><span class="hs-identifier hs-type">HsTcBracketOut</span></a></span><span>  </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001378"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-626"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001376"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001376"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsRnBracketOut"><span class="hs-identifier hs-type">HsRnBracketOut</span></a></span><span>  </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001376"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-627"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001374"><span class="annot"><span class="annottext">e :: HsExpr GhcTc
</span><a href="#local-6989586621681001374"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsSpliceE"><span class="hs-identifier hs-type">HsSpliceE</span></a></span><span>  </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001374"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-628"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsProc"><span class="hs-identifier hs-type">HsProc</span></a></span><span> </span><span id="local-6989586621681001371"><span class="annot"><span class="annottext">XProc GhcTc
</span><a href="#local-6989586621681001371"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001370"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001370"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621681001369"><span class="annot"><span class="annottext">LHsCmdTop GhcTc
</span><a href="#local-6989586621681001369"><span class="hs-identifier hs-var">cmdtop</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-629"></span><span>        </span><span class="annot"><span class="annottext">(Located (Pat GhcTc) -&gt; LHsCmdTop GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (Located (Pat GhcTc))
-&gt; TM (LHsCmdTop GhcTc)
-&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XProc GhcTc -&gt; LPat GhcTc -&gt; LHsCmdTop GhcTc -&gt; HsExpr GhcTc
forall p. XProc p -&gt; LPat p -&gt; LHsCmdTop p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsProc"><span class="hs-identifier hs-var">HsProc</span></a></span><span> </span><span class="annot"><span class="annottext">XProc GhcTc
</span><a href="#local-6989586621681001371"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-630"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LPat GhcTc -&gt; TM (LPat GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-var">addTickLPat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001370"><span class="hs-identifier hs-var">pat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-631"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(HsCmdTop GhcTc -&gt; TM (HsCmdTop GhcTc))
-&gt; LHsCmdTop GhcTc -&gt; TM (LHsCmdTop GhcTc)
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsCmdTop GhcTc -&gt; TM (HsCmdTop GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsCmdTop"><span class="hs-identifier hs-var">addTickHsCmdTop</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsCmdTop GhcTc
</span><a href="#local-6989586621681001369"><span class="hs-identifier hs-var">cmdtop</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-632"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#XExpr"><span class="hs-identifier hs-type">XExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#WrapExpr"><span class="hs-identifier hs-type">WrapExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-type">HsWrap</span></a></span><span> </span><span id="local-6989586621681001363"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621681001363"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span id="local-6989586621681001362"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001362"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-633"></span><span>        </span><span class="annot"><span class="annottext">(HsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XXExprGhcTc -&gt; HsExpr GhcTc
forall p. XXExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#XExpr"><span class="hs-identifier hs-var">XExpr</span></a></span><span> </span><span class="annot"><span class="annottext">(XXExprGhcTc -&gt; HsExpr GhcTc)
-&gt; (HsExpr GhcTc -&gt; XXExprGhcTc) -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrap HsExpr -&gt; XXExprGhcTc
</span><a href="GHC.Hs.Expr.html#WrapExpr"><span class="hs-identifier hs-var">WrapExpr</span></a></span><span> </span><span class="annot"><span class="annottext">(HsWrap HsExpr -&gt; XXExprGhcTc)
-&gt; (HsExpr GhcTc -&gt; HsWrap HsExpr) -&gt; HsExpr GhcTc -&gt; XXExprGhcTc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsWrap HsExpr
forall (hs_syn :: * -&gt; *).
HsWrapper -&gt; hs_syn GhcTc -&gt; HsWrap hs_syn
</span><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-var">HsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621681001363"><span class="hs-identifier hs-var">w</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-634"></span><span>              </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001362"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>        </span><span class="hs-comment">-- Explicitly no tick on inside</span><span>
</span><span id="line-635"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#XExpr"><span class="hs-identifier hs-type">XExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ExpansionExpr"><span class="hs-identifier hs-type">ExpansionExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpanded"><span class="hs-identifier hs-type">HsExpanded</span></a></span><span> </span><span id="local-6989586621681001359"><span class="annot"><span class="annottext">HsExpr (GhcPass 'Renamed)
</span><a href="#local-6989586621681001359"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621681001358"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001358"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-636"></span><span>        </span><span class="annot"><span class="annottext">(HsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XXExprGhcTc -&gt; HsExpr GhcTc
forall p. XXExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#XExpr"><span class="hs-identifier hs-var">XExpr</span></a></span><span> </span><span class="annot"><span class="annottext">(XXExprGhcTc -&gt; HsExpr GhcTc)
-&gt; (HsExpr GhcTc -&gt; XXExprGhcTc) -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpansion (HsExpr (GhcPass 'Renamed)) (HsExpr GhcTc)
-&gt; XXExprGhcTc
</span><a href="GHC.Hs.Expr.html#ExpansionExpr"><span class="hs-identifier hs-var">ExpansionExpr</span></a></span><span> </span><span class="annot"><span class="annottext">(HsExpansion (HsExpr (GhcPass 'Renamed)) (HsExpr GhcTc)
 -&gt; XXExprGhcTc)
-&gt; (HsExpr GhcTc
    -&gt; HsExpansion (HsExpr (GhcPass 'Renamed)) (HsExpr GhcTc))
-&gt; HsExpr GhcTc
-&gt; XXExprGhcTc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass 'Renamed)
-&gt; HsExpr GhcTc
-&gt; HsExpansion (HsExpr (GhcPass 'Renamed)) (HsExpr GhcTc)
forall a b. a -&gt; b -&gt; HsExpansion a b
</span><a href="GHC.Hs.Expr.html#HsExpanded"><span class="hs-identifier hs-var">HsExpanded</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass 'Renamed)
</span><a href="#local-6989586621681001359"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-637"></span><span>              </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001358"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-638"></span><span>
</span><span id="line-639"></span><span class="hs-comment">-- Others should never happen in expression content.</span><span>
</span><span id="line-640"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span id="local-6989586621681001357"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001357"><span class="hs-identifier hs-var">e</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc -&gt; TM (HsExpr GhcTc)
forall a. HasCallStack =&gt; FilePath -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;addTickHsExpr&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001357"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-641"></span><span>
</span><span id="line-642"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickTupArg"><span class="hs-identifier hs-type">addTickTupArg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsTupArg"><span class="hs-identifier hs-type">LHsTupArg</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsTupArg"><span class="hs-identifier hs-type">LHsTupArg</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-643"></span><span id="addTickTupArg"><span class="annot"><span class="annottext">addTickTupArg :: LHsTupArg GhcTc -&gt; TM (LHsTupArg GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickTupArg"><span class="hs-identifier hs-var hs-var">addTickTupArg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001355"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001355"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Present"><span class="hs-identifier hs-type">Present</span></a></span><span> </span><span id="local-6989586621681001353"><span class="annot"><span class="annottext">XPresent GhcTc
</span><a href="#local-6989586621681001353"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001352"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001352"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001351"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001351"><span class="hs-identifier hs-var">e'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001352"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-644"></span><span>                                        </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">LHsTupArg GhcTc -&gt; TM (LHsTupArg GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsTupArg GhcTc -&gt; LHsTupArg GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001355"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPresent GhcTc -&gt; LHsExpr GhcTc -&gt; HsTupArg GhcTc
forall id. XPresent id -&gt; LHsExpr id -&gt; HsTupArg id
</span><a href="GHC.Hs.Expr.html#Present"><span class="hs-identifier hs-var">Present</span></a></span><span> </span><span class="annot"><span class="annottext">XPresent GhcTc
</span><a href="#local-6989586621681001353"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001351"><span class="hs-identifier hs-var">e'</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-645"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickTupArg"><span class="hs-identifier hs-var">addTickTupArg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001350"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001350"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Missing"><span class="hs-identifier hs-type">Missing</span></a></span><span> </span><span id="local-6989586621681001348"><span class="annot"><span class="annottext">XMissing GhcTc
</span><a href="#local-6989586621681001348"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsTupArg GhcTc -&gt; TM (LHsTupArg GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsTupArg GhcTc -&gt; LHsTupArg GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001350"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XMissing GhcTc -&gt; HsTupArg GhcTc
forall id. XMissing id -&gt; HsTupArg id
</span><a href="GHC.Hs.Expr.html#Missing"><span class="hs-identifier hs-var">Missing</span></a></span><span> </span><span class="annot"><span class="annottext">XMissing GhcTc
</span><a href="#local-6989586621681001348"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-646"></span><span>
</span><span id="line-647"></span><span>
</span><span id="line-648"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickMatchGroup"><span class="hs-identifier hs-type">addTickMatchGroup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-comment">{-is lambda-}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#MatchGroup"><span class="hs-identifier hs-type">MatchGroup</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-649"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#MatchGroup"><span class="hs-identifier hs-type">MatchGroup</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-650"></span><span id="addTickMatchGroup"><span class="annot"><span class="annottext">addTickMatchGroup :: Bool
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatchGroup"><span class="hs-identifier hs-var hs-var">addTickMatchGroup</span></a></span></span><span> </span><span id="local-6989586621681001347"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001347"><span class="hs-identifier hs-var">is_lam</span></a></span></span><span> </span><span id="local-6989586621681001346"><span class="annot"><span class="annottext">mg :: MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001346"><span class="hs-identifier hs-var">mg</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#MG"><span class="hs-identifier hs-type">MG</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mg_alts :: forall p body. MatchGroup p body -&gt; Located [LMatch p body]
</span><a href="GHC.Hs.Expr.html#mg_alts"><span class="hs-identifier hs-var">mg_alts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001343"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001343"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001342"><span class="annot"><span class="annottext">[LMatch GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001342"><span class="hs-identifier hs-var">matches</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-651"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681001341"><span class="annot"><span class="annottext">isOneOfMany :: Bool
</span><a href="#local-6989586621681001341"><span class="hs-identifier hs-var hs-var">isOneOfMany</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc (LHsExpr GhcTc)] -&gt; Bool
forall body. [LMatch GhcTc body] -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#matchesOneOfMany"><span class="hs-identifier hs-var">matchesOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001342"><span class="hs-identifier hs-var">matches</span></a></span><span>
</span><span id="line-652"></span><span>  </span><span id="local-6989586621681001339"><span class="annot"><span class="annottext">[LMatch GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001339"><span class="hs-identifier hs-var">matches'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LMatch GhcTc (LHsExpr GhcTc) -&gt; TM (LMatch GhcTc (LHsExpr GhcTc)))
-&gt; [LMatch GhcTc (LHsExpr GhcTc)]
-&gt; TM [LMatch GhcTc (LHsExpr GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Match GhcTc (LHsExpr GhcTc) -&gt; TM (Match GhcTc (LHsExpr GhcTc)))
-&gt; LMatch GhcTc (LHsExpr GhcTc)
-&gt; TM (LMatch GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
-&gt; Bool
-&gt; Match GhcTc (LHsExpr GhcTc)
-&gt; TM (Match GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatch"><span class="hs-identifier hs-var">addTickMatch</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001341"><span class="hs-identifier hs-var">isOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001347"><span class="hs-identifier hs-var">is_lam</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001342"><span class="hs-identifier hs-var">matches</span></a></span><span>
</span><span id="line-653"></span><span>  </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(MatchGroup GhcTc (LHsExpr GhcTc)
 -&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc)))
-&gt; MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001346"><span class="hs-identifier hs-var">mg</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mg_alts :: GenLocated SrcSpan [LMatch GhcTc (LHsExpr GhcTc)]
</span><a href="GHC.Hs.Expr.html#mg_alts"><span class="hs-identifier hs-var">mg_alts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; [LMatch GhcTc (LHsExpr GhcTc)]
-&gt; GenLocated SrcSpan [LMatch GhcTc (LHsExpr GhcTc)]
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001343"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001339"><span class="hs-identifier hs-var">matches'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-654"></span><span>
</span><span id="line-655"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickMatch"><span class="hs-identifier hs-type">addTickMatch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-656"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-657"></span><span id="addTickMatch"><span class="annot"><span class="annottext">addTickMatch :: Bool
-&gt; Bool
-&gt; Match GhcTc (LHsExpr GhcTc)
-&gt; TM (Match GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickMatch"><span class="hs-identifier hs-var hs-var">addTickMatch</span></a></span></span><span> </span><span id="local-6989586621681001337"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001337"><span class="hs-identifier hs-var">isOneOfMany</span></a></span></span><span> </span><span id="local-6989586621681001336"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001336"><span class="hs-identifier hs-var">isLambda</span></a></span></span><span> </span><span id="local-6989586621681001335"><span class="annot"><span class="annottext">match :: Match GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001335"><span class="hs-identifier hs-var">match</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_pats :: forall p body. Match p body -&gt; [LPat p]
</span><a href="GHC.Hs.Expr.html#m_pats"><span class="hs-identifier hs-var">m_pats</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001332"><span class="annot"><span class="annottext">[LPat GhcTc]
</span><a href="#local-6989586621681001332"><span class="hs-identifier hs-var">pats</span></a></span></span><span>
</span><span id="line-658"></span><span>                                               </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_grhss :: forall p body. Match p body -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001330"><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001330"><span class="hs-identifier hs-var">gRHSs</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-659"></span><span>  </span><span class="annot"><span class="annottext">[Id]
-&gt; TM (Match GhcTc (LHsExpr GhcTc))
-&gt; TM (Match GhcTc (LHsExpr GhcTc))
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LPat GhcTc] -&gt; [IdP GhcTc]
forall p. CollectPass p =&gt; [LPat p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatsBinders"><span class="hs-identifier hs-var">collectPatsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[LPat GhcTc]
</span><a href="#local-6989586621681001332"><span class="hs-identifier hs-var">pats</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM (Match GhcTc (LHsExpr GhcTc))
 -&gt; TM (Match GhcTc (LHsExpr GhcTc)))
-&gt; TM (Match GhcTc (LHsExpr GhcTc))
-&gt; TM (Match GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-660"></span><span>    </span><span id="local-6989586621681001328"><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001328"><span class="hs-identifier hs-var">gRHSs'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Bool
-&gt; Bool
-&gt; GRHSs GhcTc (LHsExpr GhcTc)
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHSs"><span class="hs-identifier hs-var">addTickGRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001337"><span class="hs-identifier hs-var">isOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001336"><span class="hs-identifier hs-var">isLambda</span></a></span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001330"><span class="hs-identifier hs-var">gRHSs</span></a></span><span>
</span><span id="line-661"></span><span>    </span><span class="annot"><span class="annottext">Match GhcTc (LHsExpr GhcTc) -&gt; TM (Match GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Match GhcTc (LHsExpr GhcTc) -&gt; TM (Match GhcTc (LHsExpr GhcTc)))
-&gt; Match GhcTc (LHsExpr GhcTc) -&gt; TM (Match GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Match GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001335"><span class="hs-identifier hs-var">match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_grhss :: GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001328"><span class="hs-identifier hs-var">gRHSs'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-662"></span><span>
</span><span id="line-663"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickGRHSs"><span class="hs-identifier hs-type">addTickGRHSs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-664"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-665"></span><span id="addTickGRHSs"><span class="annot"><span class="annottext">addTickGRHSs :: Bool
-&gt; Bool
-&gt; GRHSs GhcTc (LHsExpr GhcTc)
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHSs"><span class="hs-identifier hs-var hs-var">addTickGRHSs</span></a></span></span><span> </span><span id="local-6989586621681001327"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001327"><span class="hs-identifier hs-var">isOneOfMany</span></a></span></span><span> </span><span id="local-6989586621681001326"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001326"><span class="hs-identifier hs-var">isLambda</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span id="local-6989586621681001324"><span class="annot"><span class="annottext">XCGRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001324"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001323"><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001323"><span class="hs-identifier hs-var">guarded</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001322"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001322"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001321"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001321"><span class="hs-identifier hs-var">local_binds</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-666"></span><span>  </span><span class="annot"><span class="annottext">[Id]
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
[IdP GhcTc]
</span><a href="#local-6989586621681001320"><span class="hs-identifier hs-var">binders</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (GRHSs GhcTc (LHsExpr GhcTc))
 -&gt; TM (GRHSs GhcTc (LHsExpr GhcTc)))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
-&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-667"></span><span>    </span><span id="local-6989586621681001319"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001319"><span class="hs-identifier hs-var">local_binds'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001321"><span class="hs-identifier hs-var">local_binds</span></a></span><span>
</span><span id="line-668"></span><span>    </span><span id="local-6989586621681001318"><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001318"><span class="hs-identifier hs-var">guarded'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LGRHS GhcTc (LHsExpr GhcTc) -&gt; TM (LGRHS GhcTc (LHsExpr GhcTc)))
-&gt; [LGRHS GhcTc (LHsExpr GhcTc)]
-&gt; TM [LGRHS GhcTc (LHsExpr GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc)))
-&gt; LGRHS GhcTc (LHsExpr GhcTc) -&gt; TM (LGRHS GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
-&gt; Bool
-&gt; GRHS GhcTc (LHsExpr GhcTc)
-&gt; TM (GRHS GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHS"><span class="hs-identifier hs-var">addTickGRHS</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001327"><span class="hs-identifier hs-var">isOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001326"><span class="hs-identifier hs-var">isLambda</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001323"><span class="hs-identifier hs-var">guarded</span></a></span><span>
</span><span id="line-669"></span><span>    </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsExpr GhcTc) -&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GRHSs GhcTc (LHsExpr GhcTc) -&gt; TM (GRHSs GhcTc (LHsExpr GhcTc)))
-&gt; GRHSs GhcTc (LHsExpr GhcTc) -&gt; TM (GRHSs GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHSs GhcTc (LHsExpr GhcTc)
-&gt; [LGRHS GhcTc (LHsExpr GhcTc)]
-&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
-&gt; GRHSs GhcTc (LHsExpr GhcTc)
forall p body.
XCGRHSs p body -&gt; [LGRHS p body] -&gt; LHsLocalBinds p -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-var">GRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHSs GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001324"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001318"><span class="hs-identifier hs-var">guarded'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001322"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001319"><span class="hs-identifier hs-var">local_binds'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-670"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-671"></span><span>    </span><span id="local-6989586621681001320"><span class="annot"><span class="annottext">binders :: [IdP GhcTc]
</span><a href="#local-6989586621681001320"><span class="hs-identifier hs-var hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; [IdP GhcTc]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001321"><span class="hs-identifier hs-var">local_binds</span></a></span><span>
</span><span id="line-672"></span><span>
</span><span id="line-673"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickGRHS"><span class="hs-identifier hs-type">addTickGRHS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-type">GRHS</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-674"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-type">GRHS</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-675"></span><span id="addTickGRHS"><span class="annot"><span class="annottext">addTickGRHS :: Bool
-&gt; Bool
-&gt; GRHS GhcTc (LHsExpr GhcTc)
-&gt; TM (GRHS GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHS"><span class="hs-identifier hs-var hs-var">addTickGRHS</span></a></span></span><span> </span><span id="local-6989586621681001317"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001317"><span class="hs-identifier hs-var">isOneOfMany</span></a></span></span><span> </span><span id="local-6989586621681001316"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001316"><span class="hs-identifier hs-var">isLambda</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-type">GRHS</span></a></span><span> </span><span id="local-6989586621681001314"><span class="annot"><span class="annottext">XCGRHS GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001314"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001313"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001313"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span id="local-6989586621681001312"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001312"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-676"></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621681001311"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001311"><span class="hs-identifier hs-var">stmts'</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681001310"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001310"><span class="hs-identifier hs-var">expr'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc]
-&gt; TM (LHsExpr GhcTc)
-&gt; TM ([ExprLStmt GhcTc], LHsExpr GhcTc)
forall a.
Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM a -&gt; TM ([ExprLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts%27"><span class="hs-identifier hs-var">addTickLStmts'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel))
-&gt; (Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox -&gt; Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#BinBox"><span class="hs-identifier hs-var">BinBox</span></a></span><span> </span><span class="annot"><span class="annottext">(CondBox -&gt; Bool -&gt; BoxLabel) -&gt; CondBox -&gt; Bool -&gt; BoxLabel
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#GuardBinBox"><span class="hs-identifier hs-var">GuardBinBox</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001313"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-677"></span><span>                        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHSBody"><span class="hs-identifier hs-var">addTickGRHSBody</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001317"><span class="hs-identifier hs-var">isOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001316"><span class="hs-identifier hs-var">isLambda</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001312"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-678"></span><span>  </span><span class="annot"><span class="annottext">GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc)))
-&gt; GRHS GhcTc (LHsExpr GhcTc) -&gt; TM (GRHS GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHS GhcTc (LHsExpr GhcTc)
-&gt; [ExprLStmt GhcTc] -&gt; LHsExpr GhcTc -&gt; GRHS GhcTc (LHsExpr GhcTc)
forall p body.
XCGRHS p body -&gt; [GuardLStmt p] -&gt; body -&gt; GRHS p body
</span><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-var">GRHS</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHS GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001314"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001311"><span class="hs-identifier hs-var">stmts'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001310"><span class="hs-identifier hs-var">expr'</span></a></span><span>
</span><span id="line-679"></span><span>
</span><span id="line-680"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickGRHSBody"><span class="hs-identifier hs-type">addTickGRHSBody</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-681"></span><span id="addTickGRHSBody"><span class="annot"><span class="annottext">addTickGRHSBody :: Bool -&gt; Bool -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickGRHSBody"><span class="hs-identifier hs-var hs-var">addTickGRHSBody</span></a></span></span><span> </span><span id="local-6989586621681001307"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001307"><span class="hs-identifier hs-var">isOneOfMany</span></a></span></span><span> </span><span id="local-6989586621681001306"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001306"><span class="hs-identifier hs-var">isLambda</span></a></span></span><span> </span><span id="local-6989586621681001305"><span class="annot"><span class="annottext">expr :: LHsExpr GhcTc
</span><a href="#local-6989586621681001305"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001304"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001304"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001303"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001303"><span class="hs-identifier hs-var">e0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-682"></span><span>  </span><span id="local-6989586621681001302"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001302"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span>
</span><span id="line-683"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001302"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-684"></span><span>    </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickForCoverage"><span class="hs-identifier hs-var">TickForCoverage</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprOptAlt"><span class="hs-identifier hs-var">addTickLHsExprOptAlt</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001307"><span class="hs-identifier hs-var">isOneOfMany</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001305"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-685"></span><span>    </span><span class="annot"><span class="annottext">TickDensity
</span><a href="GHC.HsToCore.Coverage.html#TickAllFunctions"><span class="hs-identifier hs-var">TickAllFunctions</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001306"><span class="hs-identifier hs-var">isLambda</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-686"></span><span>       </span><span class="annot"><span class="annottext">FilePath -&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a. FilePath -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#addPathEntry"><span class="hs-identifier hs-var">addPathEntry</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;\\&quot;</span></span><span> </span><span class="annot"><span class="annottext">(TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-687"></span><span>         </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-comment">{-count-}</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-comment">{-not top-}</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001304"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc))
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-688"></span><span>           </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; TM (HsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsExpr"><span class="hs-identifier hs-var">addTickHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001303"><span class="hs-identifier hs-var">e0</span></a></span><span>
</span><span id="line-689"></span><span>    </span><span id="local-6989586621681001301"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681001301"><span class="hs-identifier hs-var">_otherwise</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-690"></span><span>       </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-var">addTickLHsExprRHS</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001305"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-691"></span><span>
</span><span id="line-692"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLStmts"><span class="hs-identifier hs-type">addTickLStmts</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-693"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-694"></span><span id="addTickLStmts"><span class="annot"><span class="annottext">addTickLStmts :: Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts"><span class="hs-identifier hs-var hs-var">addTickLStmts</span></a></span></span><span> </span><span id="local-6989586621681001299"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001299"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span id="local-6989586621681001298"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001298"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-695"></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621681001297"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001297"><span class="hs-identifier hs-var">stmts</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM () -&gt; TM ([ExprLStmt GhcTc], ())
forall a.
Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM a -&gt; TM ([ExprLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts%27"><span class="hs-identifier hs-var">addTickLStmts'</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001299"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001298"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">() -&gt; TM ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-696"></span><span>  </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001297"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-697"></span><span>
</span><span id="line-698"></span><span id="local-6989586621681002584"><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLStmts%27"><span class="hs-identifier hs-type">addTickLStmts'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002584"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-699"></span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621681002584"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-700"></span><span id="addTickLStmts%27"><span class="annot"><span class="annottext">addTickLStmts' :: forall a.
Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM a -&gt; TM ([ExprLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts%27"><span class="hs-identifier hs-var hs-var">addTickLStmts'</span></a></span></span><span> </span><span id="local-6989586621681001289"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001289"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span id="local-6989586621681001288"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001288"><span class="hs-identifier hs-var">lstmts</span></a></span></span><span> </span><span id="local-6989586621681001287"><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681001287"><span class="hs-identifier hs-var">res</span></a></span></span><span>
</span><span id="line-701"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Id] -&gt; TM ([ExprLStmt GhcTc], a) -&gt; TM ([ExprLStmt GhcTc], a)
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[ExprLStmt GhcTc] -&gt; [IdP GhcTc]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-var">collectLStmtsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001288"><span class="hs-identifier hs-var">lstmts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM ([ExprLStmt GhcTc], a) -&gt; TM ([ExprLStmt GhcTc], a))
-&gt; TM ([ExprLStmt GhcTc], a) -&gt; TM ([ExprLStmt GhcTc], a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-702"></span><span>    </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001285"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001285"><span class="hs-identifier hs-var">lstmts'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(ExprLStmt GhcTc -&gt; TM (ExprLStmt GhcTc))
-&gt; [ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc)))
-&gt; ExprLStmt GhcTc -&gt; TM (ExprLStmt GhcTc)
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001289"><span class="hs-identifier hs-var">isGuard</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001288"><span class="hs-identifier hs-var">lstmts</span></a></span><span>
</span><span id="line-703"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001283"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681001283"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681001287"><span class="hs-identifier hs-var">res</span></a></span><span>
</span><span id="line-704"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">([ExprLStmt GhcTc], a) -&gt; TM ([ExprLStmt GhcTc], a)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001285"><span class="hs-identifier hs-var">lstmts'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681001283"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-705"></span><span>
</span><span id="line-706"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-type">addTickStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#Stmt"><span class="hs-identifier hs-type">Stmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-707"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Stmt"><span class="hs-identifier hs-type">Stmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-708"></span><span id="addTickStmt"><span class="annot"><span class="annottext">addTickStmt :: Maybe (Bool -&gt; BoxLabel)
-&gt; Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var hs-var">addTickStmt</span></a></span></span><span> </span><span id="local-6989586621681001282"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001282"><span class="hs-identifier hs-var">_isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-type">LastStmt</span></a></span><span> </span><span id="local-6989586621681001280"><span class="annot"><span class="annottext">XLastStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001280"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001279"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001279"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001278"><span class="annot"><span class="annottext">Maybe Bool
</span><a href="#local-6989586621681001278"><span class="hs-identifier hs-var">noret</span></a></span></span><span> </span><span id="local-6989586621681001277"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001277"><span class="hs-identifier hs-var">ret</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-709"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc
 -&gt; Maybe Bool -&gt; SyntaxExprTc -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (Maybe Bool)
-&gt; TM SyntaxExprTc
-&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLastStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; LHsExpr GhcTc
-&gt; Maybe Bool
-&gt; SyntaxExpr GhcTc
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall idL idR body.
XLastStmt idL idR body
-&gt; body -&gt; Maybe Bool -&gt; SyntaxExpr idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-var">LastStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XLastStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001280"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-710"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001279"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-711"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe Bool -&gt; TM (Maybe Bool)
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Bool
</span><a href="#local-6989586621681001278"><span class="hs-identifier hs-var">noret</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-712"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001277"><span class="hs-identifier hs-var">ret</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-713"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001276"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001276"><span class="hs-identifier hs-var">_isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-type">BindStmt</span></a></span><span> </span><span id="local-6989586621681001274"><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001274"><span class="hs-identifier hs-var">xbs</span></a></span></span><span> </span><span id="local-6989586621681001273"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001273"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621681001272"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001272"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-714"></span><span>        </span><span class="annot"><span class="annottext">(SyntaxExprTc
 -&gt; Maybe SyntaxExprTc
 -&gt; Located (Pat GhcTc)
 -&gt; LHsExpr GhcTc
 -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; TM SyntaxExprTc
-&gt; TM (Maybe SyntaxExprTc)
-&gt; TM (Located (Pat GhcTc))
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a1 a2 a3 a4 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; a4 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m a4 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM4"><span class="hs-identifier hs-var">liftM4</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621681001271"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001271"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621681001270"><span class="annot"><span class="annottext">Maybe SyntaxExprTc
</span><a href="#local-6989586621681001270"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; LPat GhcTc -&gt; LHsExpr GhcTc -&gt; Stmt GhcTc (LHsExpr GhcTc)
forall idL idR body.
XBindStmt idL idR body -&gt; LPat idL -&gt; body -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-var">BindStmt</span></a></span><span> </span><span class="annot"><span class="annottext">(XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
 -&gt; LPat GhcTc -&gt; LHsExpr GhcTc -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; LPat GhcTc
-&gt; LHsExpr GhcTc
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmtTc :: SyntaxExpr GhcTc
-&gt; Type -&gt; Type -&gt; Maybe (SyntaxExpr GhcTc) -&gt; XBindStmtTc
</span><a href="GHC.Hs.Expr.html#XBindStmtTc"><span class="hs-identifier hs-type">XBindStmtTc</span></a></span><span>
</span><span id="line-715"></span><span>                    </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">xbstc_bindOp :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#xbstc_bindOp"><span class="hs-identifier hs-var">xbstc_bindOp</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001271"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-716"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">xbstc_boundResultType :: Type
</span><a href="GHC.Hs.Expr.html#xbstc_boundResultType"><span class="hs-identifier hs-var">xbstc_boundResultType</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XBindStmtTc -&gt; Type
</span><a href="GHC.Hs.Expr.html#xbstc_boundResultType"><span class="hs-identifier hs-var hs-var">xbstc_boundResultType</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
XBindStmtTc
</span><a href="#local-6989586621681001274"><span class="hs-identifier hs-var">xbs</span></a></span><span>
</span><span id="line-717"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">xbstc_boundResultMult :: Type
</span><a href="GHC.Hs.Expr.html#xbstc_boundResultMult"><span class="hs-identifier hs-var">xbstc_boundResultMult</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XBindStmtTc -&gt; Type
</span><a href="GHC.Hs.Expr.html#xbstc_boundResultMult"><span class="hs-identifier hs-var hs-var">xbstc_boundResultMult</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
XBindStmtTc
</span><a href="#local-6989586621681001274"><span class="hs-identifier hs-var">xbs</span></a></span><span>
</span><span id="line-718"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">xbstc_failOp :: Maybe (SyntaxExpr GhcTc)
</span><a href="GHC.Hs.Expr.html#xbstc_failOp"><span class="hs-identifier hs-var">xbstc_failOp</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
Maybe SyntaxExprTc
</span><a href="#local-6989586621681001270"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-719"></span><span>                    </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-720"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBindStmtTc -&gt; SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#xbstc_bindOp"><span class="hs-identifier hs-var hs-var">xbstc_bindOp</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
XBindStmtTc
</span><a href="#local-6989586621681001274"><span class="hs-identifier hs-var">xbs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-721"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(SyntaxExprTc -&gt; TM SyntaxExprTc)
-&gt; Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBindStmtTc -&gt; Maybe (SyntaxExpr GhcTc)
</span><a href="GHC.Hs.Expr.html#xbstc_failOp"><span class="hs-identifier hs-var hs-var">xbstc_failOp</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsExpr GhcTc)
XBindStmtTc
</span><a href="#local-6989586621681001274"><span class="hs-identifier hs-var">xbs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-722"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LPat GhcTc -&gt; TM (LPat GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-var">addTickLPat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001273"><span class="hs-identifier hs-var">pat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-723"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-var">addTickLHsExprRHS</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001272"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-724"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001264"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001264"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-type">BodyStmt</span></a></span><span> </span><span id="local-6989586621681001262"><span class="annot"><span class="annottext">XBodyStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001262"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001261"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001261"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001260"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001260"><span class="hs-identifier hs-var">bind'</span></a></span></span><span> </span><span id="local-6989586621681001259"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001259"><span class="hs-identifier hs-var">guard'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-725"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc
 -&gt; SyntaxExprTc -&gt; SyntaxExprTc -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; TM (LHsExpr GhcTc)
-&gt; TM SyntaxExprTc
-&gt; TM SyntaxExprTc
-&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBodyStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; LHsExpr GhcTc
-&gt; SyntaxExpr GhcTc
-&gt; SyntaxExpr GhcTc
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall idL idR body.
XBodyStmt idL idR body
-&gt; body -&gt; SyntaxExpr idR -&gt; SyntaxExpr idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-var">BodyStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XBodyStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001262"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-726"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel) -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTick"><span class="hs-identifier hs-var">addTick</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001264"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001261"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-727"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001260"><span class="hs-identifier hs-var">bind'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-728"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001259"><span class="hs-identifier hs-var">guard'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-729"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001257"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001257"><span class="hs-identifier hs-var">_isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LetStmt"><span class="hs-identifier hs-type">LetStmt</span></a></span><span> </span><span id="local-6989586621681001255"><span class="annot"><span class="annottext">XLetStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001255"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001254"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001254"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001253"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001253"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-730"></span><span>        </span><span class="annot"><span class="annottext">(HsLocalBinds GhcTc -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; TM (HsLocalBinds GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLetStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall idL idR body.
XLetStmt idL idR body
-&gt; LHsLocalBindsLR idL idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#LetStmt"><span class="hs-identifier hs-var">LetStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XLetStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001255"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsLocalBinds GhcTc)
 -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; (HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc))
-&gt; HsLocalBinds GhcTc
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001254"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-731"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001253"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-732"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001252"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001252"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmt"><span class="hs-identifier hs-type">ParStmt</span></a></span><span> </span><span id="local-6989586621681001250"><span class="annot"><span class="annottext">XParStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001250"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001249"><span class="annot"><span class="annottext">[ParStmtBlock GhcTc GhcTc]
</span><a href="#local-6989586621681001249"><span class="hs-identifier hs-var">pairs</span></a></span></span><span> </span><span id="local-6989586621681001248"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001248"><span class="hs-identifier hs-var">mzipExpr</span></a></span></span><span> </span><span id="local-6989586621681001247"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001247"><span class="hs-identifier hs-var">bindExpr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-733"></span><span>    </span><span class="annot"><span class="annottext">([ParStmtBlock GhcTc GhcTc]
 -&gt; HsExpr GhcTc -&gt; SyntaxExprTc -&gt; Stmt GhcTc (LHsExpr GhcTc))
-&gt; TM [ParStmtBlock GhcTc GhcTc]
-&gt; TM (HsExpr GhcTc)
-&gt; TM SyntaxExprTc
-&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; [ParStmtBlock GhcTc GhcTc]
-&gt; HsExpr GhcTc
-&gt; SyntaxExpr GhcTc
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall idL idR body.
XParStmt idL idR body
-&gt; [ParStmtBlock idL idR]
-&gt; HsExpr idR
-&gt; SyntaxExpr idR
-&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#ParStmt"><span class="hs-identifier hs-var">ParStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XParStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001250"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-734"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ParStmtBlock GhcTc GhcTc -&gt; TM (ParStmtBlock GhcTc GhcTc))
-&gt; [ParStmtBlock GhcTc GhcTc] -&gt; TM [ParStmtBlock GhcTc GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; ParStmtBlock GhcTc GhcTc -&gt; TM (ParStmtBlock GhcTc GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickStmtAndBinders"><span class="hs-identifier hs-var">addTickStmtAndBinders</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001252"><span class="hs-identifier hs-var">isGuard</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[ParStmtBlock GhcTc GhcTc]
</span><a href="#local-6989586621681001249"><span class="hs-identifier hs-var">pairs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-735"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; HsExpr GhcTc
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001248"><span class="hs-identifier hs-var">mzipExpr</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-736"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001247"><span class="hs-identifier hs-var">bindExpr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-737"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001245"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001245"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeStmt"><span class="hs-identifier hs-type">ApplicativeStmt</span></a></span><span> </span><span id="local-6989586621681001243"><span class="annot"><span class="annottext">XApplicativeStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001243"><span class="hs-identifier hs-var">body_ty</span></a></span></span><span> </span><span id="local-6989586621681001242"><span class="annot"><span class="annottext">[(SyntaxExpr GhcTc, ApplicativeArg GhcTc)]
</span><a href="#local-6989586621681001242"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621681001241"><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
</span><a href="#local-6989586621681001241"><span class="hs-identifier hs-var">mb_join</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-738"></span><span>    </span><span id="local-6989586621681001240"><span class="annot"><span class="annottext">[(SyntaxExprTc, ApplicativeArg GhcTc)]
</span><a href="#local-6989586621681001240"><span class="hs-identifier hs-var">args'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">((SyntaxExprTc, ApplicativeArg GhcTc)
 -&gt; TM (SyntaxExprTc, ApplicativeArg GhcTc))
-&gt; [(SyntaxExprTc, ApplicativeArg GhcTc)]
-&gt; TM [(SyntaxExprTc, ApplicativeArg GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; (SyntaxExpr GhcTc, ApplicativeArg GhcTc)
-&gt; TM (SyntaxExpr GhcTc, ApplicativeArg GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickApplicativeArg"><span class="hs-identifier hs-var">addTickApplicativeArg</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001245"><span class="hs-identifier hs-var">isGuard</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(SyntaxExpr GhcTc, ApplicativeArg GhcTc)]
[(SyntaxExprTc, ApplicativeArg GhcTc)]
</span><a href="#local-6989586621681001242"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-739"></span><span>    </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XApplicativeStmt GhcTc GhcTc (LHsExpr GhcTc)
-&gt; [(SyntaxExpr GhcTc, ApplicativeArg GhcTc)]
-&gt; Maybe (SyntaxExpr GhcTc)
-&gt; Stmt GhcTc (LHsExpr GhcTc)
forall idL idR body.
XApplicativeStmt idL idR body
-&gt; [(SyntaxExpr idR, ApplicativeArg idL)]
-&gt; Maybe (SyntaxExpr idR)
-&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#ApplicativeStmt"><span class="hs-identifier hs-var">ApplicativeStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XApplicativeStmt GhcTc GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001243"><span class="hs-identifier hs-var">body_ty</span></a></span><span> </span><span class="annot"><span class="annottext">[(SyntaxExpr GhcTc, ApplicativeArg GhcTc)]
[(SyntaxExprTc, ApplicativeArg GhcTc)]
</span><a href="#local-6989586621681001240"><span class="hs-identifier hs-var">args'</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcTc)
</span><a href="#local-6989586621681001241"><span class="hs-identifier hs-var">mb_join</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-740"></span><span>
</span><span id="line-741"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001238"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001238"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span id="local-6989586621681001237"><span class="annot"><span class="annottext">stmt :: Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001237"><span class="hs-identifier hs-var">stmt</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#TransStmt"><span class="hs-identifier hs-type">TransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: forall idL idR body. StmtLR idL idR body -&gt; [ExprLStmt idL]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001234"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001234"><span class="hs-identifier hs-var">stmts</span></a></span></span><span>
</span><span id="line-742"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_by :: forall idL idR body. StmtLR idL idR body -&gt; Maybe (LHsExpr idR)
</span><a href="GHC.Hs.Expr.html#trS_by"><span class="hs-identifier hs-var">trS_by</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001232"><span class="annot"><span class="annottext">Maybe (LHsExpr GhcTc)
</span><a href="#local-6989586621681001232"><span class="hs-identifier hs-var">by</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: forall idL idR body. StmtLR idL idR body -&gt; LHsExpr idR
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001230"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001230"><span class="hs-identifier hs-var">using</span></a></span></span><span>
</span><span id="line-743"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_ret :: forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#trS_ret"><span class="hs-identifier hs-var">trS_ret</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001228"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001228"><span class="hs-identifier hs-var">returnExpr</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_bind :: forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#trS_bind"><span class="hs-identifier hs-var">trS_bind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001226"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001226"><span class="hs-identifier hs-var">bindExpr</span></a></span></span><span>
</span><span id="line-744"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_fmap :: forall idL idR body. StmtLR idL idR body -&gt; HsExpr idR
</span><a href="GHC.Hs.Expr.html#trS_fmap"><span class="hs-identifier hs-var">trS_fmap</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001224"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001224"><span class="hs-identifier hs-var">liftMExpr</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-745"></span><span>    </span><span id="local-6989586621681001223"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001223"><span class="hs-identifier hs-var">t_s</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts"><span class="hs-identifier hs-var">addTickLStmts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001238"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001234"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-746"></span><span>    </span><span id="local-6989586621681001222"><span class="annot"><span class="annottext">Maybe (LHsExpr GhcTc)
</span><a href="#local-6989586621681001222"><span class="hs-identifier hs-var">t_y</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc))
-&gt; Maybe (LHsExpr GhcTc) -&gt; TM (Maybe (LHsExpr GhcTc))
forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; Maybe a -&gt; m (Maybe b)
</span><a href="GHC.Utils.Monad.html#fmapMaybeM"><span class="hs-identifier hs-var">fmapMaybeM</span></a></span><span>  </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-var">addTickLHsExprRHS</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (LHsExpr GhcTc)
</span><a href="#local-6989586621681001232"><span class="hs-identifier hs-var">by</span></a></span><span>
</span><span id="line-747"></span><span>    </span><span id="local-6989586621681001220"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001220"><span class="hs-identifier hs-var">t_u</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-var">addTickLHsExprRHS</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001230"><span class="hs-identifier hs-var">using</span></a></span><span>
</span><span id="line-748"></span><span>    </span><span id="local-6989586621681001219"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001219"><span class="hs-identifier hs-var">t_f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001228"><span class="hs-identifier hs-var">returnExpr</span></a></span><span>
</span><span id="line-749"></span><span>    </span><span id="local-6989586621681001218"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001218"><span class="hs-identifier hs-var">t_b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001226"><span class="hs-identifier hs-var">bindExpr</span></a></span><span>
</span><span id="line-750"></span><span>    </span><span id="local-6989586621681001217"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001217"><span class="hs-identifier hs-var">t_m</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; HsExpr GhcTc
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001224"><span class="hs-identifier hs-var">liftMExpr</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-751"></span><span>    </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc)))
-&gt; Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001237"><span class="hs-identifier hs-var">stmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: [ExprLStmt GhcTc]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001223"><span class="hs-identifier hs-var">t_s</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_by :: Maybe (LHsExpr GhcTc)
</span><a href="GHC.Hs.Expr.html#trS_by"><span class="hs-identifier hs-var">trS_by</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (LHsExpr GhcTc)
</span><a href="#local-6989586621681001222"><span class="hs-identifier hs-var">t_y</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: LHsExpr GhcTc
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001220"><span class="hs-identifier hs-var">t_u</span></a></span><span>
</span><span id="line-752"></span><span>                  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_ret :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#trS_ret"><span class="hs-identifier hs-var">trS_ret</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001219"><span class="hs-identifier hs-var">t_f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_bind :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#trS_bind"><span class="hs-identifier hs-var">trS_bind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001218"><span class="hs-identifier hs-var">t_b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_fmap :: HsExpr GhcTc
</span><a href="GHC.Hs.Expr.html#trS_fmap"><span class="hs-identifier hs-var">trS_fmap</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001217"><span class="hs-identifier hs-var">t_m</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-753"></span><span>
</span><span id="line-754"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmt"><span class="hs-identifier hs-var">addTickStmt</span></a></span><span> </span><span id="local-6989586621681001216"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001216"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span id="local-6989586621681001215"><span class="annot"><span class="annottext">stmt :: Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001215"><span class="hs-identifier hs-var">stmt</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#RecStmt"><span class="hs-identifier hs-type">RecStmt</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-755"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001213"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001213"><span class="hs-identifier hs-var">stmts'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts"><span class="hs-identifier hs-var">addTickLStmts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001216"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; [ExprLStmt GhcTc]
forall idL idR body. StmtLR idL idR body -&gt; [LStmtLR idL idR body]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var hs-var">recS_stmts</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001215"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-756"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001211"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001211"><span class="hs-identifier hs-var">ret'</span></a></span></span><span>   </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; SyntaxExpr GhcTc
forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#recS_ret_fn"><span class="hs-identifier hs-var hs-var">recS_ret_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001215"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-757"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001209"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001209"><span class="hs-identifier hs-var">mfix'</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; SyntaxExpr GhcTc
forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#recS_mfix_fn"><span class="hs-identifier hs-var hs-var">recS_mfix_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001215"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-758"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001207"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001207"><span class="hs-identifier hs-var">bind'</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; SyntaxExpr GhcTc
forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#recS_bind_fn"><span class="hs-identifier hs-var hs-var">recS_bind_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001215"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-759"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc) -&gt; TM (Stmt GhcTc (LHsExpr GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621681001215"><span class="hs-identifier hs-var">stmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_stmts :: [ExprLStmt GhcTc]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var">recS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001213"><span class="hs-identifier hs-var">stmts'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_ret_fn :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#recS_ret_fn"><span class="hs-identifier hs-var">recS_ret_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001211"><span class="hs-identifier hs-var">ret'</span></a></span><span>
</span><span id="line-760"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_mfix_fn :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#recS_mfix_fn"><span class="hs-identifier hs-var">recS_mfix_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001209"><span class="hs-identifier hs-var">mfix'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_bind_fn :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#recS_bind_fn"><span class="hs-identifier hs-var">recS_bind_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001207"><span class="hs-identifier hs-var">bind'</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-761"></span><span>
</span><span id="line-762"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTick"><span class="hs-identifier hs-type">addTick</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-763"></span><span id="addTick"><span class="annot"><span class="annottext">addTick :: Maybe (Bool -&gt; BoxLabel) -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTick"><span class="hs-identifier hs-var hs-var">addTick</span></a></span></span><span> </span><span id="local-6989586621681001205"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001205"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span id="local-6989586621681001204"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001204"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681001203"><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681001203"><span class="hs-identifier hs-var">fn</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001205"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel) -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addBinTickLHsExpr"><span class="hs-identifier hs-var">addBinTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681001203"><span class="hs-identifier hs-var">fn</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001204"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-764"></span><span>                  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExprRHS"><span class="hs-identifier hs-var">addTickLHsExprRHS</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001204"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-765"></span><span>
</span><span id="line-766"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickApplicativeArg"><span class="hs-identifier hs-type">addTickApplicativeArg</span></a></span><span>
</span><span id="line-767"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExpr"><span class="hs-identifier hs-type">SyntaxExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArg"><span class="hs-identifier hs-type">ApplicativeArg</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-768"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExpr"><span class="hs-identifier hs-type">SyntaxExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArg"><span class="hs-identifier hs-type">ApplicativeArg</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-769"></span><span id="addTickApplicativeArg"><span class="annot"><span class="annottext">addTickApplicativeArg :: Maybe (Bool -&gt; BoxLabel)
-&gt; (SyntaxExpr GhcTc, ApplicativeArg GhcTc)
-&gt; TM (SyntaxExpr GhcTc, ApplicativeArg GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickApplicativeArg"><span class="hs-identifier hs-var hs-var">addTickApplicativeArg</span></a></span></span><span> </span><span id="local-6989586621681001202"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001202"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001201"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001201"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681001200"><span class="annot"><span class="annottext">ApplicativeArg GhcTc
</span><a href="#local-6989586621681001200"><span class="hs-identifier hs-var">arg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-770"></span><span>  </span><span class="annot"><span class="annottext">(SyntaxExprTc
 -&gt; ApplicativeArg GhcTc -&gt; (SyntaxExprTc, ApplicativeArg GhcTc))
-&gt; TM SyntaxExprTc
-&gt; TM (ApplicativeArg GhcTc)
-&gt; TM (SyntaxExprTc, ApplicativeArg GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001201"><span class="hs-identifier hs-var">op</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ApplicativeArg GhcTc -&gt; TM (ApplicativeArg GhcTc)
</span><a href="#local-6989586621681001199"><span class="hs-identifier hs-var">addTickArg</span></a></span><span> </span><span class="annot"><span class="annottext">ApplicativeArg GhcTc
</span><a href="#local-6989586621681001200"><span class="hs-identifier hs-var">arg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-771"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-772"></span><span>  </span><span id="local-6989586621681001199"><span class="annot"><span class="annottext">addTickArg :: ApplicativeArg GhcTc -&gt; TM (ApplicativeArg GhcTc)
</span><a href="#local-6989586621681001199"><span class="hs-identifier hs-var hs-var">addTickArg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArgOne"><span class="hs-identifier hs-type">ApplicativeArgOne</span></a></span><span> </span><span id="local-6989586621681001197"><span class="annot"><span class="annottext">XApplicativeArgOne GhcTc
</span><a href="#local-6989586621681001197"><span class="hs-identifier hs-var">m_fail</span></a></span></span><span> </span><span id="local-6989586621681001196"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001196"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621681001195"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001195"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621681001194"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001194"><span class="hs-identifier hs-var">isBody</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-773"></span><span>    </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc
-&gt; Located (Pat GhcTc)
-&gt; LHsExpr GhcTc
-&gt; Bool
-&gt; ApplicativeArg GhcTc
forall idL.
XApplicativeArgOne idL
-&gt; LPat idL -&gt; LHsExpr idL -&gt; Bool -&gt; ApplicativeArg idL
</span><a href="GHC.Hs.Expr.html#ApplicativeArgOne"><span class="hs-identifier hs-var">ApplicativeArgOne</span></a></span><span>
</span><span id="line-774"></span><span>      </span><span class="annot"><span class="annottext">(Maybe SyntaxExprTc
 -&gt; Located (Pat GhcTc)
 -&gt; LHsExpr GhcTc
 -&gt; Bool
 -&gt; ApplicativeArg GhcTc)
-&gt; TM (Maybe SyntaxExprTc)
-&gt; TM
     (Located (Pat GhcTc)
      -&gt; LHsExpr GhcTc -&gt; Bool -&gt; ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(SyntaxExprTc -&gt; TM SyntaxExprTc)
-&gt; Maybe SyntaxExprTc -&gt; TM (Maybe SyntaxExprTc)
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe SyntaxExprTc
XApplicativeArgOne GhcTc
</span><a href="#local-6989586621681001197"><span class="hs-identifier hs-var">m_fail</span></a></span><span>
</span><span id="line-775"></span><span>      </span><span class="annot"><span class="annottext">TM
  (Located (Pat GhcTc)
   -&gt; LHsExpr GhcTc -&gt; Bool -&gt; ApplicativeArg GhcTc)
-&gt; TM (Located (Pat GhcTc))
-&gt; TM (LHsExpr GhcTc -&gt; Bool -&gt; ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc -&gt; TM (LPat GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-var">addTickLPat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001196"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-776"></span><span>      </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc -&gt; Bool -&gt; ApplicativeArg GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (Bool -&gt; ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001195"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-777"></span><span>      </span><span class="annot"><span class="annottext">TM (Bool -&gt; ApplicativeArg GhcTc)
-&gt; TM Bool -&gt; TM (ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; TM Bool
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001194"><span class="hs-identifier hs-var">isBody</span></a></span><span>
</span><span id="line-778"></span><span>  </span><span class="annot"><a href="#local-6989586621681001199"><span class="hs-identifier hs-var">addTickArg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArgMany"><span class="hs-identifier hs-type">ApplicativeArgMany</span></a></span><span> </span><span id="local-6989586621681001192"><span class="annot"><span class="annottext">XApplicativeArgMany GhcTc
</span><a href="#local-6989586621681001192"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001191"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001191"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span id="local-6989586621681001190"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001190"><span class="hs-identifier hs-var">ret</span></a></span></span><span> </span><span id="local-6989586621681001189"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001189"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621681001188"><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><a href="#local-6989586621681001188"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-779"></span><span>    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XApplicativeArgMany GhcTc
-&gt; [ExprLStmt GhcTc]
-&gt; HsExpr GhcTc
-&gt; LPat GhcTc
-&gt; HsStmtContext (GhcPass 'Renamed)
-&gt; ApplicativeArg GhcTc
forall idL.
XApplicativeArgMany idL
-&gt; [ExprLStmt idL]
-&gt; HsExpr idL
-&gt; LPat idL
-&gt; HsStmtContext (GhcPass 'Renamed)
-&gt; ApplicativeArg idL
</span><a href="GHC.Hs.Expr.html#ApplicativeArgMany"><span class="hs-identifier hs-var">ApplicativeArgMany</span></a></span><span> </span><span class="annot"><span class="annottext">XApplicativeArgMany GhcTc
</span><a href="#local-6989586621681001192"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-780"></span><span>      </span><span class="annot"><span class="annottext">([ExprLStmt GhcTc]
 -&gt; HsExpr GhcTc
 -&gt; Located (Pat GhcTc)
 -&gt; HsStmtContext (GhcPass 'Renamed)
 -&gt; ApplicativeArg GhcTc)
-&gt; TM [ExprLStmt GhcTc]
-&gt; TM
     (HsExpr GhcTc
      -&gt; Located (Pat GhcTc)
      -&gt; HsStmtContext (GhcPass 'Renamed)
      -&gt; ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts"><span class="hs-identifier hs-var">addTickLStmts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001202"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001191"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-781"></span><span>      </span><span class="annot"><span class="annottext">TM
  (HsExpr GhcTc
   -&gt; Located (Pat GhcTc)
   -&gt; HsStmtContext (GhcPass 'Renamed)
   -&gt; ApplicativeArg GhcTc)
-&gt; TM (HsExpr GhcTc)
-&gt; TM
     (Located (Pat GhcTc)
      -&gt; HsStmtContext (GhcPass 'Renamed) -&gt; ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; HsExpr GhcTc
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001190"><span class="hs-identifier hs-var">ret</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-782"></span><span>      </span><span class="annot"><span class="annottext">TM
  (Located (Pat GhcTc)
   -&gt; HsStmtContext (GhcPass 'Renamed) -&gt; ApplicativeArg GhcTc)
-&gt; TM (Located (Pat GhcTc))
-&gt; TM (HsStmtContext (GhcPass 'Renamed) -&gt; ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc -&gt; TM (LPat GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-var">addTickLPat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001189"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-783"></span><span>      </span><span class="annot"><span class="annottext">TM (HsStmtContext (GhcPass 'Renamed) -&gt; ApplicativeArg GhcTc)
-&gt; TM (HsStmtContext (GhcPass 'Renamed))
-&gt; TM (ApplicativeArg GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
-&gt; TM (HsStmtContext (GhcPass 'Renamed))
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">HsStmtContext (GhcPass 'Renamed)
</span><a href="#local-6989586621681001188"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-784"></span><span>
</span><span id="line-785"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickStmtAndBinders"><span class="hs-identifier hs-type">addTickStmtAndBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmtBlock"><span class="hs-identifier hs-type">ParStmtBlock</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-786"></span><span>                      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmtBlock"><span class="hs-identifier hs-type">ParStmtBlock</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-787"></span><span id="addTickStmtAndBinders"><span class="annot"><span class="annottext">addTickStmtAndBinders :: Maybe (Bool -&gt; BoxLabel)
-&gt; ParStmtBlock GhcTc GhcTc -&gt; TM (ParStmtBlock GhcTc GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickStmtAndBinders"><span class="hs-identifier hs-var hs-var">addTickStmtAndBinders</span></a></span></span><span> </span><span id="local-6989586621681001187"><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001187"><span class="hs-identifier hs-var">isGuard</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmtBlock"><span class="hs-identifier hs-type">ParStmtBlock</span></a></span><span> </span><span id="local-6989586621681001185"><span class="annot"><span class="annottext">XParStmtBlock GhcTc GhcTc
</span><a href="#local-6989586621681001185"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001184"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001184"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span id="local-6989586621681001183"><span class="annot"><span class="annottext">[IdP GhcTc]
</span><a href="#local-6989586621681001183"><span class="hs-identifier hs-var">ids</span></a></span></span><span> </span><span id="local-6989586621681001182"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001182"><span class="hs-identifier hs-var">returnExpr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-788"></span><span>    </span><span class="annot"><span class="annottext">([ExprLStmt GhcTc]
 -&gt; [Id] -&gt; SyntaxExprTc -&gt; ParStmtBlock GhcTc GhcTc)
-&gt; TM [ExprLStmt GhcTc]
-&gt; TM [Id]
-&gt; TM SyntaxExprTc
-&gt; TM (ParStmtBlock GhcTc GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParStmtBlock GhcTc GhcTc
-&gt; [ExprLStmt GhcTc]
-&gt; [IdP GhcTc]
-&gt; SyntaxExpr GhcTc
-&gt; ParStmtBlock GhcTc GhcTc
forall idL idR.
XParStmtBlock idL idR
-&gt; [ExprLStmt idL]
-&gt; [IdP idR]
-&gt; SyntaxExpr idR
-&gt; ParStmtBlock idL idR
</span><a href="GHC.Hs.Expr.html#ParStmtBlock"><span class="hs-identifier hs-var">ParStmtBlock</span></a></span><span> </span><span class="annot"><span class="annottext">XParStmtBlock GhcTc GhcTc
</span><a href="#local-6989586621681001185"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-789"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM [ExprLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts"><span class="hs-identifier hs-var">addTickLStmts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
</span><a href="#local-6989586621681001187"><span class="hs-identifier hs-var">isGuard</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001184"><span class="hs-identifier hs-var">stmts</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-790"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Id] -&gt; TM [Id]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
[IdP GhcTc]
</span><a href="#local-6989586621681001183"><span class="hs-identifier hs-var">ids</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-791"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001182"><span class="hs-identifier hs-var">returnExpr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-792"></span><span>
</span><span id="line-793"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-type">addTickHsLocalBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsLocalBinds"><span class="hs-identifier hs-type">HsLocalBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsLocalBinds"><span class="hs-identifier hs-type">HsLocalBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-794"></span><span id="addTickHsLocalBinds"><span class="annot"><span class="annottext">addTickHsLocalBinds :: HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var hs-var">addTickHsLocalBinds</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBinds"><span class="hs-identifier hs-type">HsValBinds</span></a></span><span> </span><span id="local-6989586621681001180"><span class="annot"><span class="annottext">XHsValBinds GhcTc GhcTc
</span><a href="#local-6989586621681001180"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001179"><span class="annot"><span class="annottext">HsValBindsLR GhcTc GhcTc
</span><a href="#local-6989586621681001179"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-795"></span><span>        </span><span class="annot"><span class="annottext">(HsValBindsLR GhcTc GhcTc -&gt; HsLocalBinds GhcTc)
-&gt; TM (HsValBindsLR GhcTc GhcTc) -&gt; TM (HsLocalBinds GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XHsValBinds GhcTc GhcTc
-&gt; HsValBindsLR GhcTc GhcTc -&gt; HsLocalBinds GhcTc
forall idL idR.
XHsValBinds idL idR
-&gt; HsValBindsLR idL idR -&gt; HsLocalBindsLR idL idR
</span><a href="GHC.Hs.Binds.html#HsValBinds"><span class="hs-identifier hs-var">HsValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XHsValBinds GhcTc GhcTc
</span><a href="#local-6989586621681001180"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-796"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsValBindsLR GhcTc GhcTc -&gt; TM (HsValBindsLR GhcTc GhcTc)
forall (a :: Pass) (b :: Pass).
HsValBindsLR GhcTc (GhcPass a)
-&gt; TM (HsValBindsLR GhcTc (GhcPass b))
</span><a href="GHC.HsToCore.Coverage.html#addTickHsValBinds"><span class="hs-identifier hs-var">addTickHsValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsValBindsLR GhcTc GhcTc
</span><a href="#local-6989586621681001179"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-797"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsIPBinds"><span class="hs-identifier hs-type">HsIPBinds</span></a></span><span> </span><span id="local-6989586621681001176"><span class="annot"><span class="annottext">XHsIPBinds GhcTc GhcTc
</span><a href="#local-6989586621681001176"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001175"><span class="annot"><span class="annottext">HsIPBinds GhcTc
</span><a href="#local-6989586621681001175"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span>
</span><span id="line-798"></span><span>        </span><span class="annot"><span class="annottext">(HsIPBinds GhcTc -&gt; HsLocalBinds GhcTc)
-&gt; TM (HsIPBinds GhcTc) -&gt; TM (HsLocalBinds GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XHsIPBinds GhcTc GhcTc -&gt; HsIPBinds GhcTc -&gt; HsLocalBinds GhcTc
forall idL idR.
XHsIPBinds idL idR -&gt; HsIPBinds idR -&gt; HsLocalBindsLR idL idR
</span><a href="GHC.Hs.Binds.html#HsIPBinds"><span class="hs-identifier hs-var">HsIPBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XHsIPBinds GhcTc GhcTc
</span><a href="#local-6989586621681001176"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-799"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsIPBinds GhcTc -&gt; TM (HsIPBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsIPBinds"><span class="hs-identifier hs-var">addTickHsIPBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsIPBinds GhcTc
</span><a href="#local-6989586621681001175"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-800"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#EmptyLocalBinds"><span class="hs-identifier hs-type">EmptyLocalBinds</span></a></span><span> </span><span id="local-6989586621681001172"><span class="annot"><span class="annottext">XEmptyLocalBinds GhcTc GhcTc
</span><a href="#local-6989586621681001172"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XEmptyLocalBinds GhcTc GhcTc -&gt; HsLocalBinds GhcTc
forall idL idR. XEmptyLocalBinds idL idR -&gt; HsLocalBindsLR idL idR
</span><a href="GHC.Hs.Binds.html#EmptyLocalBinds"><span class="hs-identifier hs-var">EmptyLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XEmptyLocalBinds GhcTc GhcTc
</span><a href="#local-6989586621681001172"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-801"></span><span>
</span><span id="line-802"></span><span id="local-6989586621681002468"><span id="local-6989586621681002469"><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsValBinds"><span class="hs-identifier hs-type">addTickHsValBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBindsLR"><span class="hs-identifier hs-type">HsValBindsLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002469"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-803"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBindsLR"><span class="hs-identifier hs-type">HsValBindsLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002468"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-804"></span><span id="addTickHsValBinds"><span class="annot"><span class="annottext">addTickHsValBinds :: forall (a :: Pass) (b :: Pass).
HsValBindsLR GhcTc (GhcPass a)
-&gt; TM (HsValBindsLR GhcTc (GhcPass b))
</span><a href="GHC.HsToCore.Coverage.html#addTickHsValBinds"><span class="hs-identifier hs-var hs-var">addTickHsValBinds</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#XValBindsLR"><span class="hs-identifier hs-type">XValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#NValBinds"><span class="hs-identifier hs-type">NValBinds</span></a></span><span> </span><span id="local-6989586621681001161"><span class="annot"><span class="annottext">[(RecFlag, LHsBinds GhcTc)]
</span><a href="#local-6989586621681001161"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span id="local-6989586621681001160"><span class="annot"><span class="annottext">[LSig (GhcPass 'Renamed)]
</span><a href="#local-6989586621681001160"><span class="hs-identifier hs-var">sigs</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-805"></span><span>        </span><span id="local-6989586621681001159"><span class="annot"><span class="annottext">NHsValBindsLR GhcTc
</span><a href="#local-6989586621681001159"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">([(RecFlag, LHsBinds GhcTc)]
 -&gt; [LSig (GhcPass 'Renamed)] -&gt; NHsValBindsLR GhcTc)
-&gt; TM [(RecFlag, LHsBinds GhcTc)]
-&gt; TM [LSig (GhcPass 'Renamed)]
-&gt; TM (NHsValBindsLR GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="annot"><span class="annottext">[(RecFlag, LHsBinds GhcTc)]
-&gt; [LSig (GhcPass 'Renamed)] -&gt; NHsValBindsLR GhcTc
forall idL.
[(RecFlag, LHsBinds idL)]
-&gt; [LSig (GhcPass 'Renamed)] -&gt; NHsValBindsLR idL
</span><a href="GHC.Hs.Binds.html#NValBinds"><span class="hs-identifier hs-var">NValBinds</span></a></span><span>
</span><span id="line-806"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((RecFlag, LHsBinds GhcTc) -&gt; TM (RecFlag, LHsBinds GhcTc))
-&gt; [(RecFlag, LHsBinds GhcTc)] -&gt; TM [(RecFlag, LHsBinds GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001158"><span class="annot"><span class="annottext">RecFlag
</span><a href="#local-6989586621681001158"><span class="hs-identifier hs-var">rec</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681001157"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001157"><span class="hs-identifier hs-var">binds'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-807"></span><span>                                </span><span class="annot"><span class="annottext">(RecFlag -&gt; LHsBinds GhcTc -&gt; (RecFlag, LHsBinds GhcTc))
-&gt; TM RecFlag
-&gt; TM (LHsBinds GhcTc)
-&gt; TM (RecFlag, LHsBinds GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span>
</span><span id="line-808"></span><span>                                        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RecFlag -&gt; TM RecFlag
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">RecFlag
</span><a href="#local-6989586621681001158"><span class="hs-identifier hs-var">rec</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-809"></span><span>                                        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcTc -&gt; TM (LHsBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsBinds"><span class="hs-identifier hs-var">addTickLHsBinds</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621681001157"><span class="hs-identifier hs-var">binds'</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-810"></span><span>                        </span><span class="annot"><span class="annottext">[(RecFlag, LHsBinds GhcTc)]
</span><a href="#local-6989586621681001161"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-811"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LSig (GhcPass 'Renamed)] -&gt; TM [LSig (GhcPass 'Renamed)]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">[LSig (GhcPass 'Renamed)]
</span><a href="#local-6989586621681001160"><span class="hs-identifier hs-var">sigs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-812"></span><span>        </span><span class="annot"><span class="annottext">HsValBindsLR GhcTc (GhcPass b)
-&gt; TM (HsValBindsLR GhcTc (GhcPass b))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(HsValBindsLR GhcTc (GhcPass b)
 -&gt; TM (HsValBindsLR GhcTc (GhcPass b)))
-&gt; HsValBindsLR GhcTc (GhcPass b)
-&gt; TM (HsValBindsLR GhcTc (GhcPass b))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XXValBindsLR GhcTc (GhcPass b) -&gt; HsValBindsLR GhcTc (GhcPass b)
forall idL idR. XXValBindsLR idL idR -&gt; HsValBindsLR idL idR
</span><a href="GHC.Hs.Binds.html#XValBindsLR"><span class="hs-identifier hs-var">XValBindsLR</span></a></span><span> </span><span class="annot"><span class="annottext">XXValBindsLR GhcTc (GhcPass b)
NHsValBindsLR GhcTc
</span><a href="#local-6989586621681001159"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-813"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsValBinds"><span class="hs-identifier hs-var">addTickHsValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsValBindsLR GhcTc (GhcPass a)
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; TM (HsValBindsLR GhcTc (GhcPass b))
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;addTickHsValBinds&quot;</span></span><span>
</span><span id="line-814"></span><span>
</span><span id="line-815"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsIPBinds"><span class="hs-identifier hs-type">addTickHsIPBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsIPBinds"><span class="hs-identifier hs-type">HsIPBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsIPBinds"><span class="hs-identifier hs-type">HsIPBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-816"></span><span id="addTickHsIPBinds"><span class="annot"><span class="annottext">addTickHsIPBinds :: HsIPBinds GhcTc -&gt; TM (HsIPBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsIPBinds"><span class="hs-identifier hs-var hs-var">addTickHsIPBinds</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#IPBinds"><span class="hs-identifier hs-type">IPBinds</span></a></span><span> </span><span id="local-6989586621681001155"><span class="annot"><span class="annottext">XIPBinds GhcTc
</span><a href="#local-6989586621681001155"><span class="hs-identifier hs-var">dictbinds</span></a></span></span><span> </span><span id="local-6989586621681001154"><span class="annot"><span class="annottext">[LIPBind GhcTc]
</span><a href="#local-6989586621681001154"><span class="hs-identifier hs-var">ipbinds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-817"></span><span>        </span><span class="annot"><span class="annottext">(TcEvBinds -&gt; [LIPBind GhcTc] -&gt; HsIPBinds GhcTc)
-&gt; TM TcEvBinds -&gt; TM [LIPBind GhcTc] -&gt; TM (HsIPBinds GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="annot"><span class="annottext">TcEvBinds -&gt; [LIPBind GhcTc] -&gt; HsIPBinds GhcTc
forall id. XIPBinds id -&gt; [LIPBind id] -&gt; HsIPBinds id
</span><a href="GHC.Hs.Binds.html#IPBinds"><span class="hs-identifier hs-var">IPBinds</span></a></span><span>
</span><span id="line-818"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TcEvBinds -&gt; TM TcEvBinds
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">XIPBinds GhcTc
TcEvBinds
</span><a href="#local-6989586621681001155"><span class="hs-identifier hs-var">dictbinds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-819"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LIPBind GhcTc -&gt; TM (LIPBind GhcTc))
-&gt; [LIPBind GhcTc] -&gt; TM [LIPBind GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(IPBind GhcTc -&gt; TM (IPBind GhcTc))
-&gt; LIPBind GhcTc -&gt; TM (LIPBind GhcTc)
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IPBind GhcTc -&gt; TM (IPBind GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickIPBind"><span class="hs-identifier hs-var">addTickIPBind</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LIPBind GhcTc]
</span><a href="#local-6989586621681001154"><span class="hs-identifier hs-var">ipbinds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-820"></span><span>
</span><span id="line-821"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickIPBind"><span class="hs-identifier hs-type">addTickIPBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#IPBind"><span class="hs-identifier hs-type">IPBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#IPBind"><span class="hs-identifier hs-type">IPBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-822"></span><span id="addTickIPBind"><span class="annot"><span class="annottext">addTickIPBind :: IPBind GhcTc -&gt; TM (IPBind GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickIPBind"><span class="hs-identifier hs-var hs-var">addTickIPBind</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#IPBind"><span class="hs-identifier hs-type">IPBind</span></a></span><span> </span><span id="local-6989586621681001151"><span class="annot"><span class="annottext">XCIPBind GhcTc
</span><a href="#local-6989586621681001151"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001150"><span class="annot"><span class="annottext">Either (Located HsIPName) (IdP GhcTc)
</span><a href="#local-6989586621681001150"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span id="local-6989586621681001149"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001149"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-823"></span><span>        </span><span class="annot"><span class="annottext">(Either (Located HsIPName) Id -&gt; LHsExpr GhcTc -&gt; IPBind GhcTc)
-&gt; TM (Either (Located HsIPName) Id)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (IPBind GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCIPBind GhcTc
-&gt; Either (Located HsIPName) (IdP GhcTc)
-&gt; LHsExpr GhcTc
-&gt; IPBind GhcTc
forall id.
XCIPBind id
-&gt; Either (Located HsIPName) (IdP id) -&gt; LHsExpr id -&gt; IPBind id
</span><a href="GHC.Hs.Binds.html#IPBind"><span class="hs-identifier hs-var">IPBind</span></a></span><span> </span><span class="annot"><span class="annottext">XCIPBind GhcTc
</span><a href="#local-6989586621681001151"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-824"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Either (Located HsIPName) Id -&gt; TM (Either (Located HsIPName) Id)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either (Located HsIPName) Id
Either (Located HsIPName) (IdP GhcTc)
</span><a href="#local-6989586621681001150"><span class="hs-identifier hs-var">nm</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-825"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001149"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-826"></span><span>
</span><span id="line-827"></span><span class="hs-comment">-- There is no location here, so we might need to use a context location??</span><span>
</span><span id="line-828"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-type">addTickSyntaxExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExpr"><span class="hs-identifier hs-type">SyntaxExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExpr"><span class="hs-identifier hs-type">SyntaxExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-829"></span><span id="addTickSyntaxExpr"><span class="annot"><span class="annottext">addTickSyntaxExpr :: SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var hs-var">addTickSyntaxExpr</span></a></span></span><span> </span><span id="local-6989586621681001148"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001148"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001147"><span class="annot"><span class="annottext">syn :: SyntaxExpr GhcTc
</span><a href="#local-6989586621681001147"><span class="hs-identifier hs-var">syn</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExprTc"><span class="hs-identifier hs-type">SyntaxExprTc</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">syn_expr :: SyntaxExprTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Expr.html#syn_expr"><span class="hs-identifier hs-var">syn_expr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001144"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001144"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-830"></span><span>        </span><span id="local-6989586621681001143"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001143"><span class="hs-identifier hs-var">x'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; HsExpr GhcTc
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001148"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001144"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-831"></span><span>        </span><span class="annot"><span class="annottext">SyntaxExprTc -&gt; TM SyntaxExprTc
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(SyntaxExprTc -&gt; TM SyntaxExprTc)
-&gt; SyntaxExprTc -&gt; TM SyntaxExprTc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001147"><span class="hs-identifier hs-var">syn</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">syn_expr :: HsExpr GhcTc
</span><a href="GHC.Hs.Expr.html#syn_expr"><span class="hs-identifier hs-var">syn_expr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681001143"><span class="hs-identifier hs-var">x'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-832"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="GHC.Hs.Expr.html#NoSyntaxExprTc"><span class="hs-identifier hs-var">NoSyntaxExprTc</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExprTc -&gt; TM SyntaxExprTc
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="GHC.Hs.Expr.html#NoSyntaxExprTc"><span class="hs-identifier hs-var">NoSyntaxExprTc</span></a></span><span>
</span><span id="line-833"></span><span>
</span><span id="line-834"></span><span class="hs-comment">-- we do not walk into patterns.</span><span>
</span><span id="line-835"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-type">addTickLPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-836"></span><span id="addTickLPat"><span class="annot"><span class="annottext">addTickLPat :: LPat GhcTc -&gt; TM (LPat GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-var hs-var">addTickLPat</span></a></span></span><span> </span><span id="local-6989586621681001141"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001141"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcTc) -&gt; TM (Located (Pat GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcTc)
LPat GhcTc
</span><a href="#local-6989586621681001141"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-837"></span><span>
</span><span id="line-838"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmdTop"><span class="hs-identifier hs-type">addTickHsCmdTop</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdTop"><span class="hs-identifier hs-type">HsCmdTop</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdTop"><span class="hs-identifier hs-type">HsCmdTop</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-839"></span><span id="addTickHsCmdTop"><span class="annot"><span class="annottext">addTickHsCmdTop :: HsCmdTop GhcTc -&gt; TM (HsCmdTop GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsCmdTop"><span class="hs-identifier hs-var hs-var">addTickHsCmdTop</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdTop"><span class="hs-identifier hs-type">HsCmdTop</span></a></span><span> </span><span id="local-6989586621681001139"><span class="annot"><span class="annottext">XCmdTop GhcTc
</span><a href="#local-6989586621681001139"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001138"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001138"><span class="hs-identifier hs-var">cmd</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-840"></span><span>        </span><span class="annot"><span class="annottext">(CmdTopTc -&gt; LHsCmd GhcTc -&gt; HsCmdTop GhcTc)
-&gt; TM CmdTopTc -&gt; TM (LHsCmd GhcTc) -&gt; TM (HsCmdTop GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="annot"><span class="annottext">CmdTopTc -&gt; LHsCmd GhcTc -&gt; HsCmdTop GhcTc
forall p. XCmdTop p -&gt; LHsCmd p -&gt; HsCmdTop p
</span><a href="GHC.Hs.Expr.html#HsCmdTop"><span class="hs-identifier hs-var">HsCmdTop</span></a></span><span>
</span><span id="line-841"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CmdTopTc -&gt; TM CmdTopTc
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdTop GhcTc
CmdTopTc
</span><a href="#local-6989586621681001139"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-842"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001138"><span class="hs-identifier hs-var">cmd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-843"></span><span>
</span><span id="line-844"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-type">addTickLHsCmd</span></a></span><span> </span><span class="hs-glyph">::</span><span>  </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-845"></span><span id="addTickLHsCmd"><span class="annot"><span class="annottext">addTickLHsCmd :: LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var hs-var">addTickLHsCmd</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001136"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001136"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681001135"><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621681001135"><span class="hs-identifier hs-var">c0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-846"></span><span>        </span><span id="local-6989586621681001134"><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621681001134"><span class="hs-identifier hs-var">c1</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc -&gt; TM (HsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621681001135"><span class="hs-identifier hs-var">c0</span></a></span><span>
</span><span id="line-847"></span><span>        </span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc))
-&gt; LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsCmd GhcTc -&gt; LHsCmd GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001136"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621681001134"><span class="hs-identifier hs-var">c1</span></a></span><span>
</span><span id="line-848"></span><span>
</span><span id="line-849"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-type">addTickHsCmd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmd"><span class="hs-identifier hs-type">HsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmd"><span class="hs-identifier hs-type">HsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-850"></span><span id="addTickHsCmd"><span class="annot"><span class="annottext">addTickHsCmd :: HsCmd GhcTc -&gt; TM (HsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var hs-var">addTickHsCmd</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdLam"><span class="hs-identifier hs-type">HsCmdLam</span></a></span><span> </span><span id="local-6989586621681001131"><span class="annot"><span class="annottext">XCmdLam GhcTc
</span><a href="#local-6989586621681001131"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001130"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001130"><span class="hs-identifier hs-var">matchgroup</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-851"></span><span>        </span><span class="annot"><span class="annottext">(MatchGroup GhcTc (LHsCmd GhcTc) -&gt; HsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc)) -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdLam GhcTc -&gt; MatchGroup GhcTc (LHsCmd GhcTc) -&gt; HsCmd GhcTc
forall id. XCmdLam id -&gt; MatchGroup id (LHsCmd id) -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdLam"><span class="hs-identifier hs-var">HsCmdLam</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdLam GhcTc
</span><a href="#local-6989586621681001131"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdMatchGroup"><span class="hs-identifier hs-var">addTickCmdMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001130"><span class="hs-identifier hs-var">matchgroup</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-852"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdApp"><span class="hs-identifier hs-type">HsCmdApp</span></a></span><span> </span><span id="local-6989586621681001127"><span class="annot"><span class="annottext">XCmdApp GhcTc
</span><a href="#local-6989586621681001127"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001126"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001126"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621681001125"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001125"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-853"></span><span>        </span><span class="annot"><span class="annottext">(LHsCmd GhcTc -&gt; LHsExpr GhcTc -&gt; HsCmd GhcTc)
-&gt; TM (LHsCmd GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdApp GhcTc -&gt; LHsCmd GhcTc -&gt; LHsExpr GhcTc -&gt; HsCmd GhcTc
forall id. XCmdApp id -&gt; LHsCmd id -&gt; LHsExpr id -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdApp"><span class="hs-identifier hs-var">HsCmdApp</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdApp GhcTc
</span><a href="#local-6989586621681001127"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001126"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001125"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-854"></span><span class="hs-comment">{-
addTickHsCmd (OpApp e1 c2 fix c3) =
        liftM4 OpApp
                (addTickLHsExpr e1)
                (addTickLHsCmd c2)
                (return fix)
                (addTickLHsCmd c3)
-}</span><span>
</span><span id="line-862"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdPar"><span class="hs-identifier hs-type">HsCmdPar</span></a></span><span> </span><span id="local-6989586621681001123"><span class="annot"><span class="annottext">XCmdPar GhcTc
</span><a href="#local-6989586621681001123"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001122"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001122"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsCmd GhcTc -&gt; HsCmd GhcTc)
-&gt; TM (LHsCmd GhcTc) -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdPar GhcTc -&gt; LHsCmd GhcTc -&gt; HsCmd GhcTc
forall id. XCmdPar id -&gt; LHsCmd id -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdPar"><span class="hs-identifier hs-var">HsCmdPar</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdPar GhcTc
</span><a href="#local-6989586621681001123"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001122"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-863"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdCase"><span class="hs-identifier hs-type">HsCmdCase</span></a></span><span> </span><span id="local-6989586621681001120"><span class="annot"><span class="annottext">XCmdCase GhcTc
</span><a href="#local-6989586621681001120"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001119"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001119"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001118"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001118"><span class="hs-identifier hs-var">mgs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-864"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; MatchGroup GhcTc (LHsCmd GhcTc) -&gt; HsCmd GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
-&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdCase GhcTc
-&gt; LHsExpr GhcTc -&gt; MatchGroup GhcTc (LHsCmd GhcTc) -&gt; HsCmd GhcTc
forall id.
XCmdCase id -&gt; LHsExpr id -&gt; MatchGroup id (LHsCmd id) -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdCase"><span class="hs-identifier hs-var">HsCmdCase</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdCase GhcTc
</span><a href="#local-6989586621681001120"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-865"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001119"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-866"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdMatchGroup"><span class="hs-identifier hs-var">addTickCmdMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001118"><span class="hs-identifier hs-var">mgs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-867"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdLamCase"><span class="hs-identifier hs-type">HsCmdLamCase</span></a></span><span> </span><span id="local-6989586621681001116"><span class="annot"><span class="annottext">XCmdLamCase GhcTc
</span><a href="#local-6989586621681001116"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001115"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001115"><span class="hs-identifier hs-var">mgs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-868"></span><span>        </span><span class="annot"><span class="annottext">(MatchGroup GhcTc (LHsCmd GhcTc) -&gt; HsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc)) -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdLamCase GhcTc -&gt; MatchGroup GhcTc (LHsCmd GhcTc) -&gt; HsCmd GhcTc
forall id. XCmdLamCase id -&gt; MatchGroup id (LHsCmd id) -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdLamCase"><span class="hs-identifier hs-var">HsCmdLamCase</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdLamCase GhcTc
</span><a href="#local-6989586621681001116"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdMatchGroup"><span class="hs-identifier hs-var">addTickCmdMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001115"><span class="hs-identifier hs-var">mgs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-869"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdIf"><span class="hs-identifier hs-type">HsCmdIf</span></a></span><span> </span><span id="local-6989586621681001113"><span class="annot"><span class="annottext">XCmdIf GhcTc
</span><a href="#local-6989586621681001113"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001112"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001112"><span class="hs-identifier hs-var">cnd</span></a></span></span><span> </span><span id="local-6989586621681001111"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001111"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001110"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001110"><span class="hs-identifier hs-var">c2</span></a></span></span><span> </span><span id="local-6989586621681001109"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001109"><span class="hs-identifier hs-var">c3</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-870"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsCmd GhcTc -&gt; LHsCmd GhcTc -&gt; HsCmd GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsCmd GhcTc)
-&gt; TM (LHsCmd GhcTc)
-&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdIf GhcTc
-&gt; SyntaxExpr GhcTc
-&gt; LHsExpr GhcTc
-&gt; LHsCmd GhcTc
-&gt; LHsCmd GhcTc
-&gt; HsCmd GhcTc
forall id.
XCmdIf id
-&gt; SyntaxExpr id
-&gt; LHsExpr id
-&gt; LHsCmd id
-&gt; LHsCmd id
-&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdIf"><span class="hs-identifier hs-var">HsCmdIf</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdIf GhcTc
</span><a href="#local-6989586621681001113"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001112"><span class="hs-identifier hs-var">cnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-871"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel) -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addBinTickLHsExpr"><span class="hs-identifier hs-var">addBinTickLHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CondBox -&gt; Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#BinBox"><span class="hs-identifier hs-var">BinBox</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#CondBinBox"><span class="hs-identifier hs-var">CondBinBox</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001111"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-872"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001110"><span class="hs-identifier hs-var">c2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-873"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001109"><span class="hs-identifier hs-var">c3</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-874"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdLet"><span class="hs-identifier hs-type">HsCmdLet</span></a></span><span> </span><span id="local-6989586621681001107"><span class="annot"><span class="annottext">XCmdLet GhcTc
</span><a href="#local-6989586621681001107"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001106"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001106"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001105"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001105"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681001104"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001104"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-875"></span><span>        </span><span class="annot"><span class="annottext">[Id] -&gt; TM (HsCmd GhcTc) -&gt; TM (HsCmd GhcTc)
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; [IdP GhcTc]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001105"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM (HsCmd GhcTc) -&gt; TM (HsCmd GhcTc))
-&gt; TM (HsCmd GhcTc) -&gt; TM (HsCmd GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-876"></span><span>          </span><span class="annot"><span class="annottext">(HsLocalBinds GhcTc -&gt; LHsCmd GhcTc -&gt; HsCmd GhcTc)
-&gt; TM (HsLocalBinds GhcTc) -&gt; TM (LHsCmd GhcTc) -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdLet GhcTc
-&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
-&gt; LHsCmd GhcTc
-&gt; HsCmd GhcTc
forall id. XCmdLet id -&gt; LHsLocalBinds id -&gt; LHsCmd id -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdLet"><span class="hs-identifier hs-var">HsCmdLet</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdLet GhcTc
</span><a href="#local-6989586621681001107"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsLocalBinds GhcTc)
 -&gt; LHsCmd GhcTc -&gt; HsCmd GhcTc)
-&gt; (HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc))
-&gt; HsLocalBinds GhcTc
-&gt; LHsCmd GhcTc
-&gt; HsCmd GhcTc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001106"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-877"></span><span>                   </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001105"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- to think about: !patterns.</span><span>
</span><span id="line-878"></span><span>                   </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001104"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-879"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdDo"><span class="hs-identifier hs-type">HsCmdDo</span></a></span><span> </span><span id="local-6989586621681001102"><span class="annot"><span class="annottext">XCmdDo GhcTc
</span><a href="#local-6989586621681001102"><span class="hs-identifier hs-var">srcloc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001101"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001101"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001100"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001100"><span class="hs-identifier hs-var">stmts</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-880"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001099"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001099"><span class="hs-identifier hs-var">stmts'</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc] -&gt; TM () -&gt; TM ([CmdLStmt GhcTc], ())
forall a. [CmdLStmt GhcTc] -&gt; TM a -&gt; TM ([CmdLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts%27"><span class="hs-identifier hs-var">addTickLCmdStmts'</span></a></span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001100"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">() -&gt; TM ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-881"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdDo GhcTc -&gt; GenLocated SrcSpan [CmdLStmt GhcTc] -&gt; HsCmd GhcTc
forall id. XCmdDo id -&gt; Located [CmdLStmt id] -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdDo"><span class="hs-identifier hs-var">HsCmdDo</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdDo GhcTc
</span><a href="#local-6989586621681001102"><span class="hs-identifier hs-var">srcloc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; [CmdLStmt GhcTc] -&gt; GenLocated SrcSpan [CmdLStmt GhcTc]
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001101"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001099"><span class="hs-identifier hs-var">stmts'</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-882"></span><span>
</span><span id="line-883"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdArrApp"><span class="hs-identifier hs-type">HsCmdArrApp</span></a></span><span>  </span><span id="local-6989586621681001096"><span class="annot"><span class="annottext">XCmdArrApp GhcTc
</span><a href="#local-6989586621681001096"><span class="hs-identifier hs-var">arr_ty</span></a></span></span><span> </span><span id="local-6989586621681001095"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001095"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001094"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001094"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span id="local-6989586621681001093"><span class="annot"><span class="annottext">HsArrAppType
</span><a href="#local-6989586621681001093"><span class="hs-identifier hs-var">ty1</span></a></span></span><span> </span><span id="local-6989586621681001092"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001092"><span class="hs-identifier hs-var">lr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-884"></span><span>        </span><span class="annot"><span class="annottext">(Type
 -&gt; LHsExpr GhcTc
 -&gt; LHsExpr GhcTc
 -&gt; HsArrAppType
 -&gt; Bool
 -&gt; HsCmd GhcTc)
-&gt; TM Type
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM HsArrAppType
-&gt; TM Bool
-&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 a4 a5 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; a4 -&gt; a5 -&gt; r)
-&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m a4 -&gt; m a5 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM5"><span class="hs-identifier hs-var">liftM5</span></a></span><span> </span><span class="annot"><span class="annottext">Type
-&gt; LHsExpr GhcTc
-&gt; LHsExpr GhcTc
-&gt; HsArrAppType
-&gt; Bool
-&gt; HsCmd GhcTc
forall id.
XCmdArrApp id
-&gt; LHsExpr id -&gt; LHsExpr id -&gt; HsArrAppType -&gt; Bool -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdArrApp"><span class="hs-identifier hs-var">HsCmdArrApp</span></a></span><span>
</span><span id="line-885"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Type -&gt; TM Type
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Type
XCmdArrApp GhcTc
</span><a href="#local-6989586621681001096"><span class="hs-identifier hs-var">arr_ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-886"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001095"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-887"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001094"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-888"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsArrAppType -&gt; TM HsArrAppType
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HsArrAppType
</span><a href="#local-6989586621681001093"><span class="hs-identifier hs-var">ty1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-889"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; TM Bool
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001092"><span class="hs-identifier hs-var">lr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-890"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmdArrForm"><span class="hs-identifier hs-type">HsCmdArrForm</span></a></span><span> </span><span id="local-6989586621681001089"><span class="annot"><span class="annottext">XCmdArrForm GhcTc
</span><a href="#local-6989586621681001089"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001088"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001088"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621681001087"><span class="annot"><span class="annottext">LexicalFixity
</span><a href="#local-6989586621681001087"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621681001086"><span class="annot"><span class="annottext">Maybe Fixity
</span><a href="#local-6989586621681001086"><span class="hs-identifier hs-var">fix</span></a></span></span><span> </span><span id="local-6989586621681001085"><span class="annot"><span class="annottext">[LHsCmdTop GhcTc]
</span><a href="#local-6989586621681001085"><span class="hs-identifier hs-var">cmdtop</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-891"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc
 -&gt; LexicalFixity
 -&gt; Maybe Fixity
 -&gt; [LHsCmdTop GhcTc]
 -&gt; HsCmd GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM LexicalFixity
-&gt; TM (Maybe Fixity)
-&gt; TM [LHsCmdTop GhcTc]
-&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 a4 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; a4 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m a4 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM4"><span class="hs-identifier hs-var">liftM4</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCmdArrForm GhcTc
-&gt; LHsExpr GhcTc
-&gt; LexicalFixity
-&gt; Maybe Fixity
-&gt; [LHsCmdTop GhcTc]
-&gt; HsCmd GhcTc
forall id.
XCmdArrForm id
-&gt; LHsExpr id
-&gt; LexicalFixity
-&gt; Maybe Fixity
-&gt; [LHsCmdTop id]
-&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdArrForm"><span class="hs-identifier hs-var">HsCmdArrForm</span></a></span><span> </span><span class="annot"><span class="annottext">XCmdArrForm GhcTc
</span><a href="#local-6989586621681001089"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-892"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001088"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-893"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LexicalFixity -&gt; TM LexicalFixity
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LexicalFixity
</span><a href="#local-6989586621681001087"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-894"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe Fixity -&gt; TM (Maybe Fixity)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Fixity
</span><a href="#local-6989586621681001086"><span class="hs-identifier hs-var">fix</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-895"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LHsCmdTop GhcTc -&gt; TM (LHsCmdTop GhcTc))
-&gt; [LHsCmdTop GhcTc] -&gt; TM [LHsCmdTop GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(HsCmdTop GhcTc -&gt; TM (HsCmdTop GhcTc))
-&gt; LHsCmdTop GhcTc -&gt; TM (LHsCmdTop GhcTc)
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsCmdTop GhcTc -&gt; TM (HsCmdTop GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsCmdTop"><span class="hs-identifier hs-var">addTickHsCmdTop</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsCmdTop GhcTc]
</span><a href="#local-6989586621681001085"><span class="hs-identifier hs-var">cmdtop</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-896"></span><span>
</span><span id="line-897"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#XCmd"><span class="hs-identifier hs-type">XCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-type">HsWrap</span></a></span><span> </span><span id="local-6989586621681001083"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621681001083"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span id="local-6989586621681001082"><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621681001082"><span class="hs-identifier hs-var">cmd</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-898"></span><span>  </span><span class="annot"><span class="annottext">(HsWrap HsCmd -&gt; HsCmd GhcTc)
-&gt; TM (HsWrap HsCmd) -&gt; TM (HsCmd GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrap HsCmd -&gt; HsCmd GhcTc
forall id. XXCmd id -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#XCmd"><span class="hs-identifier hs-var">XCmd</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (HsWrap HsCmd) -&gt; TM (HsCmd GhcTc))
-&gt; TM (HsWrap HsCmd) -&gt; TM (HsCmd GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-899"></span><span>  </span><span class="annot"><span class="annottext">(HsCmd GhcTc -&gt; HsWrap HsCmd)
-&gt; TM (HsCmd GhcTc) -&gt; TM (HsWrap HsCmd)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper -&gt; HsCmd GhcTc -&gt; HsWrap HsCmd
forall (hs_syn :: * -&gt; *).
HsWrapper -&gt; hs_syn GhcTc -&gt; HsWrap hs_syn
</span><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-var">HsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621681001083"><span class="hs-identifier hs-var">w</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsCmd GhcTc -&gt; TM (HsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsCmd"><span class="hs-identifier hs-var">addTickHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621681001082"><span class="hs-identifier hs-var">cmd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-900"></span><span>
</span><span id="line-901"></span><span class="hs-comment">-- Others should never happen in a command context.</span><span>
</span><span id="line-902"></span><span class="hs-comment">--addTickHsCmd e  = pprPanic &quot;addTickHsCmd&quot; (ppr e)</span><span>
</span><span id="line-903"></span><span>
</span><span id="line-904"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdMatchGroup"><span class="hs-identifier hs-type">addTickCmdMatchGroup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#MatchGroup"><span class="hs-identifier hs-type">MatchGroup</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-905"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#MatchGroup"><span class="hs-identifier hs-type">MatchGroup</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-906"></span><span id="addTickCmdMatchGroup"><span class="annot"><span class="annottext">addTickCmdMatchGroup :: MatchGroup GhcTc (LHsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdMatchGroup"><span class="hs-identifier hs-var hs-var">addTickCmdMatchGroup</span></a></span></span><span> </span><span id="local-6989586621681001081"><span class="annot"><span class="annottext">mg :: MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001081"><span class="hs-identifier hs-var">mg</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#MG"><span class="hs-identifier hs-type">MG</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mg_alts :: forall p body. MatchGroup p body -&gt; Located [LMatch p body]
</span><a href="GHC.Hs.Expr.html#mg_alts"><span class="hs-identifier hs-var">mg_alts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001080"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001080"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001079"><span class="annot"><span class="annottext">[LMatch GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001079"><span class="hs-identifier hs-var">matches</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-907"></span><span>  </span><span id="local-6989586621681001078"><span class="annot"><span class="annottext">[LMatch GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001078"><span class="hs-identifier hs-var">matches'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LMatch GhcTc (LHsCmd GhcTc) -&gt; TM (LMatch GhcTc (LHsCmd GhcTc)))
-&gt; [LMatch GhcTc (LHsCmd GhcTc)]
-&gt; TM [LMatch GhcTc (LHsCmd GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Match GhcTc (LHsCmd GhcTc) -&gt; TM (Match GhcTc (LHsCmd GhcTc)))
-&gt; LMatch GhcTc (LHsCmd GhcTc) -&gt; TM (LMatch GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="annot"><span class="annottext">Match GhcTc (LHsCmd GhcTc) -&gt; TM (Match GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdMatch"><span class="hs-identifier hs-var">addTickCmdMatch</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001079"><span class="hs-identifier hs-var">matches</span></a></span><span>
</span><span id="line-908"></span><span>  </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(MatchGroup GhcTc (LHsCmd GhcTc)
 -&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc)))
-&gt; MatchGroup GhcTc (LHsCmd GhcTc)
-&gt; TM (MatchGroup GhcTc (LHsCmd GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001081"><span class="hs-identifier hs-var">mg</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mg_alts :: GenLocated SrcSpan [LMatch GhcTc (LHsCmd GhcTc)]
</span><a href="GHC.Hs.Expr.html#mg_alts"><span class="hs-identifier hs-var">mg_alts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; [LMatch GhcTc (LHsCmd GhcTc)]
-&gt; GenLocated SrcSpan [LMatch GhcTc (LHsCmd GhcTc)]
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001080"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001078"><span class="hs-identifier hs-var">matches'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-909"></span><span>
</span><span id="line-910"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdMatch"><span class="hs-identifier hs-type">addTickCmdMatch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-911"></span><span id="addTickCmdMatch"><span class="annot"><span class="annottext">addTickCmdMatch :: Match GhcTc (LHsCmd GhcTc) -&gt; TM (Match GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdMatch"><span class="hs-identifier hs-var hs-var">addTickCmdMatch</span></a></span></span><span> </span><span id="local-6989586621681001076"><span class="annot"><span class="annottext">match :: Match GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001076"><span class="hs-identifier hs-var">match</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_pats :: forall p body. Match p body -&gt; [LPat p]
</span><a href="GHC.Hs.Expr.html#m_pats"><span class="hs-identifier hs-var">m_pats</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001075"><span class="annot"><span class="annottext">[LPat GhcTc]
</span><a href="#local-6989586621681001075"><span class="hs-identifier hs-var">pats</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_grhss :: forall p body. Match p body -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621681001074"><span class="annot"><span class="annottext">GRHSs GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001074"><span class="hs-identifier hs-var">gRHSs</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-912"></span><span>  </span><span class="annot"><span class="annottext">[Id]
-&gt; TM (Match GhcTc (LHsCmd GhcTc))
-&gt; TM (Match GhcTc (LHsCmd GhcTc))
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LPat GhcTc] -&gt; [IdP GhcTc]
forall p. CollectPass p =&gt; [LPat p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatsBinders"><span class="hs-identifier hs-var">collectPatsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[LPat GhcTc]
</span><a href="#local-6989586621681001075"><span class="hs-identifier hs-var">pats</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TM (Match GhcTc (LHsCmd GhcTc))
 -&gt; TM (Match GhcTc (LHsCmd GhcTc)))
-&gt; TM (Match GhcTc (LHsCmd GhcTc))
-&gt; TM (Match GhcTc (LHsCmd GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-913"></span><span>    </span><span id="local-6989586621681001073"><span class="annot"><span class="annottext">GRHSs GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001073"><span class="hs-identifier hs-var">gRHSs'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsCmd GhcTc) -&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdGRHSs"><span class="hs-identifier hs-var">addTickCmdGRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001074"><span class="hs-identifier hs-var">gRHSs</span></a></span><span>
</span><span id="line-914"></span><span>    </span><span class="annot"><span class="annottext">Match GhcTc (LHsCmd GhcTc) -&gt; TM (Match GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Match GhcTc (LHsCmd GhcTc) -&gt; TM (Match GhcTc (LHsCmd GhcTc)))
-&gt; Match GhcTc (LHsCmd GhcTc) -&gt; TM (Match GhcTc (LHsCmd GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Match GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001076"><span class="hs-identifier hs-var">match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_grhss :: GRHSs GhcTc (LHsCmd GhcTc)
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001073"><span class="hs-identifier hs-var">gRHSs'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-915"></span><span>
</span><span id="line-916"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdGRHSs"><span class="hs-identifier hs-type">addTickCmdGRHSs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-917"></span><span id="addTickCmdGRHSs"><span class="annot"><span class="annottext">addTickCmdGRHSs :: GRHSs GhcTc (LHsCmd GhcTc) -&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdGRHSs"><span class="hs-identifier hs-var hs-var">addTickCmdGRHSs</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span id="local-6989586621681001071"><span class="annot"><span class="annottext">XCGRHSs GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001071"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001070"><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001070"><span class="hs-identifier hs-var">guarded</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001069"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001069"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001068"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001068"><span class="hs-identifier hs-var">local_binds</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-918"></span><span>  </span><span class="annot"><span class="annottext">[Id]
-&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
-&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
[IdP GhcTc]
</span><a href="#local-6989586621681001067"><span class="hs-identifier hs-var">binders</span></a></span><span> </span><span class="annot"><span class="annottext">(TM (GRHSs GhcTc (LHsCmd GhcTc))
 -&gt; TM (GRHSs GhcTc (LHsCmd GhcTc)))
-&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
-&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-919"></span><span>    </span><span id="local-6989586621681001066"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001066"><span class="hs-identifier hs-var">local_binds'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001068"><span class="hs-identifier hs-var">local_binds</span></a></span><span>
</span><span id="line-920"></span><span>    </span><span id="local-6989586621681001065"><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001065"><span class="hs-identifier hs-var">guarded'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LGRHS GhcTc (LHsCmd GhcTc) -&gt; TM (LGRHS GhcTc (LHsCmd GhcTc)))
-&gt; [LGRHS GhcTc (LHsCmd GhcTc)] -&gt; TM [LGRHS GhcTc (LHsCmd GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GRHS GhcTc (LHsCmd GhcTc) -&gt; TM (GRHS GhcTc (LHsCmd GhcTc)))
-&gt; LGRHS GhcTc (LHsCmd GhcTc) -&gt; TM (LGRHS GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="annot"><span class="annottext">GRHS GhcTc (LHsCmd GhcTc) -&gt; TM (GRHS GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdGRHS"><span class="hs-identifier hs-var">addTickCmdGRHS</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001070"><span class="hs-identifier hs-var">guarded</span></a></span><span>
</span><span id="line-921"></span><span>    </span><span class="annot"><span class="annottext">GRHSs GhcTc (LHsCmd GhcTc) -&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GRHSs GhcTc (LHsCmd GhcTc) -&gt; TM (GRHSs GhcTc (LHsCmd GhcTc)))
-&gt; GRHSs GhcTc (LHsCmd GhcTc) -&gt; TM (GRHSs GhcTc (LHsCmd GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHSs GhcTc (LHsCmd GhcTc)
-&gt; [LGRHS GhcTc (LHsCmd GhcTc)]
-&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
-&gt; GRHSs GhcTc (LHsCmd GhcTc)
forall p body.
XCGRHSs p body -&gt; [LGRHS p body] -&gt; LHsLocalBinds p -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-var">GRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHSs GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001071"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc (LHsCmd GhcTc)]
</span><a href="#local-6989586621681001065"><span class="hs-identifier hs-var">guarded'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001069"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001066"><span class="hs-identifier hs-var">local_binds'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-922"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-923"></span><span>    </span><span id="local-6989586621681001067"><span class="annot"><span class="annottext">binders :: [IdP GhcTc]
</span><a href="#local-6989586621681001067"><span class="hs-identifier hs-var hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; [IdP GhcTc]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001068"><span class="hs-identifier hs-var">local_binds</span></a></span><span>
</span><span id="line-924"></span><span>
</span><span id="line-925"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdGRHS"><span class="hs-identifier hs-type">addTickCmdGRHS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-type">GRHS</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-type">GRHS</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-926"></span><span class="hs-comment">-- The *guards* are *not* Cmds, although the body is</span><span>
</span><span id="line-927"></span><span class="hs-comment">-- C.f. addTickGRHS for the BinBox stuff</span><span>
</span><span id="line-928"></span><span id="addTickCmdGRHS"><span class="annot"><span class="annottext">addTickCmdGRHS :: GRHS GhcTc (LHsCmd GhcTc) -&gt; TM (GRHS GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdGRHS"><span class="hs-identifier hs-var hs-var">addTickCmdGRHS</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-type">GRHS</span></a></span><span> </span><span id="local-6989586621681001063"><span class="annot"><span class="annottext">XCGRHS GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001063"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001062"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001062"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span id="local-6989586621681001061"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001061"><span class="hs-identifier hs-var">cmd</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-929"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681001060"><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001060"><span class="hs-identifier hs-var">stmts'</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681001059"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001059"><span class="hs-identifier hs-var">expr'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc]
-&gt; TM (LHsCmd GhcTc)
-&gt; TM ([ExprLStmt GhcTc], LHsCmd GhcTc)
forall a.
Maybe (Bool -&gt; BoxLabel)
-&gt; [ExprLStmt GhcTc] -&gt; TM a -&gt; TM ([ExprLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLStmts%27"><span class="hs-identifier hs-var">addTickLStmts'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel))
-&gt; (Bool -&gt; BoxLabel) -&gt; Maybe (Bool -&gt; BoxLabel)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox -&gt; Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#BinBox"><span class="hs-identifier hs-var">BinBox</span></a></span><span> </span><span class="annot"><span class="annottext">(CondBox -&gt; Bool -&gt; BoxLabel) -&gt; CondBox -&gt; Bool -&gt; BoxLabel
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CondBox
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#GuardBinBox"><span class="hs-identifier hs-var">GuardBinBox</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-930"></span><span>                                   </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001062"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001061"><span class="hs-identifier hs-var">cmd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-931"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">GRHS GhcTc (LHsCmd GhcTc) -&gt; TM (GRHS GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GRHS GhcTc (LHsCmd GhcTc) -&gt; TM (GRHS GhcTc (LHsCmd GhcTc)))
-&gt; GRHS GhcTc (LHsCmd GhcTc) -&gt; TM (GRHS GhcTc (LHsCmd GhcTc))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHS GhcTc (LHsCmd GhcTc)
-&gt; [ExprLStmt GhcTc] -&gt; LHsCmd GhcTc -&gt; GRHS GhcTc (LHsCmd GhcTc)
forall p body.
XCGRHS p body -&gt; [GuardLStmt p] -&gt; body -&gt; GRHS p body
</span><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-var">GRHS</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHS GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001063"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcTc]
</span><a href="#local-6989586621681001060"><span class="hs-identifier hs-var">stmts'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001059"><span class="hs-identifier hs-var">expr'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-932"></span><span>
</span><span id="line-933"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts"><span class="hs-identifier hs-type">addTickLCmdStmts</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmt"><span class="hs-identifier hs-type">LStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-934"></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmt"><span class="hs-identifier hs-type">LStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-935"></span><span id="addTickLCmdStmts"><span class="annot"><span class="annottext">addTickLCmdStmts :: [CmdLStmt GhcTc] -&gt; TM [CmdLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts"><span class="hs-identifier hs-var hs-var">addTickLCmdStmts</span></a></span></span><span> </span><span id="local-6989586621681001056"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001056"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-936"></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621681001055"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001055"><span class="hs-identifier hs-var">stmts</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc] -&gt; TM () -&gt; TM ([CmdLStmt GhcTc], ())
forall a. [CmdLStmt GhcTc] -&gt; TM a -&gt; TM ([CmdLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts%27"><span class="hs-identifier hs-var">addTickLCmdStmts'</span></a></span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001056"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">() -&gt; TM ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-937"></span><span>  </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc] -&gt; TM [CmdLStmt GhcTc]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001055"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-938"></span><span>
</span><span id="line-939"></span><span id="local-6989586621681002434"><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts%27"><span class="hs-identifier hs-type">addTickLCmdStmts'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmt"><span class="hs-identifier hs-type">LStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002434"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-940"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmt"><span class="hs-identifier hs-type">LStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621681002434"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-941"></span><span id="addTickLCmdStmts%27"><span class="annot"><span class="annottext">addTickLCmdStmts' :: forall a. [CmdLStmt GhcTc] -&gt; TM a -&gt; TM ([CmdLStmt GhcTc], a)
</span><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts%27"><span class="hs-identifier hs-var hs-var">addTickLCmdStmts'</span></a></span></span><span> </span><span id="local-6989586621681001047"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001047"><span class="hs-identifier hs-var">lstmts</span></a></span></span><span> </span><span id="local-6989586621681001046"><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681001046"><span class="hs-identifier hs-var">res</span></a></span></span><span>
</span><span id="line-942"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Id] -&gt; TM ([CmdLStmt GhcTc], a) -&gt; TM ([CmdLStmt GhcTc], a)
forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var">bindLocals</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
[IdP GhcTc]
</span><a href="#local-6989586621681001045"><span class="hs-identifier hs-var">binders</span></a></span><span> </span><span class="annot"><span class="annottext">(TM ([CmdLStmt GhcTc], a) -&gt; TM ([CmdLStmt GhcTc], a))
-&gt; TM ([CmdLStmt GhcTc], a) -&gt; TM ([CmdLStmt GhcTc], a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-943"></span><span>        </span><span id="local-6989586621681001044"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001044"><span class="hs-identifier hs-var">lstmts'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(CmdLStmt GhcTc -&gt; TM (CmdLStmt GhcTc))
-&gt; [CmdLStmt GhcTc] -&gt; TM [CmdLStmt GhcTc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Stmt GhcTc (LHsCmd GhcTc) -&gt; TM (Stmt GhcTc (LHsCmd GhcTc)))
-&gt; CmdLStmt GhcTc -&gt; TM (CmdLStmt GhcTc)
forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var">liftL</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001047"><span class="hs-identifier hs-var">lstmts</span></a></span><span>
</span><span id="line-944"></span><span>        </span><span id="local-6989586621681001042"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681001042"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681001046"><span class="hs-identifier hs-var">res</span></a></span><span>
</span><span id="line-945"></span><span>        </span><span class="annot"><span class="annottext">([CmdLStmt GhcTc], a) -&gt; TM ([CmdLStmt GhcTc], a)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001044"><span class="hs-identifier hs-var">lstmts'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681001042"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-946"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-947"></span><span>        </span><span id="local-6989586621681001045"><span class="annot"><span class="annottext">binders :: [IdP GhcTc]
</span><a href="#local-6989586621681001045"><span class="hs-identifier hs-var hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc] -&gt; [IdP GhcTc]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-var">collectLStmtsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001047"><span class="hs-identifier hs-var">lstmts</span></a></span><span>
</span><span id="line-948"></span><span>
</span><span id="line-949"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-type">addTickCmdStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#Stmt"><span class="hs-identifier hs-type">Stmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Stmt"><span class="hs-identifier hs-type">Stmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-950"></span><span id="addTickCmdStmt"><span class="annot"><span class="annottext">addTickCmdStmt :: Stmt GhcTc (LHsCmd GhcTc) -&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var hs-var">addTickCmdStmt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-type">BindStmt</span></a></span><span> </span><span id="local-6989586621681001041"><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001041"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001040"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001040"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621681001039"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001039"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-951"></span><span>        </span><span class="annot"><span class="annottext">(Located (Pat GhcTc) -&gt; LHsCmd GhcTc -&gt; Stmt GhcTc (LHsCmd GhcTc))
-&gt; TM (Located (Pat GhcTc))
-&gt; TM (LHsCmd GhcTc)
-&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsCmd GhcTc)
-&gt; LPat GhcTc -&gt; LHsCmd GhcTc -&gt; Stmt GhcTc (LHsCmd GhcTc)
forall idL idR body.
XBindStmt idL idR body -&gt; LPat idL -&gt; body -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-var">BindStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001041"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-952"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LPat GhcTc -&gt; TM (LPat GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLPat"><span class="hs-identifier hs-var">addTickLPat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621681001040"><span class="hs-identifier hs-var">pat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-953"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001039"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-954"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-type">LastStmt</span></a></span><span> </span><span id="local-6989586621681001038"><span class="annot"><span class="annottext">XLastStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001038"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001037"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001037"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621681001036"><span class="annot"><span class="annottext">Maybe Bool
</span><a href="#local-6989586621681001036"><span class="hs-identifier hs-var">noret</span></a></span></span><span> </span><span id="local-6989586621681001035"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001035"><span class="hs-identifier hs-var">ret</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-955"></span><span>        </span><span class="annot"><span class="annottext">(LHsCmd GhcTc
 -&gt; Maybe Bool -&gt; SyntaxExprTc -&gt; Stmt GhcTc (LHsCmd GhcTc))
-&gt; TM (LHsCmd GhcTc)
-&gt; TM (Maybe Bool)
-&gt; TM SyntaxExprTc
-&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLastStmt GhcTc GhcTc (LHsCmd GhcTc)
-&gt; LHsCmd GhcTc
-&gt; Maybe Bool
-&gt; SyntaxExpr GhcTc
-&gt; Stmt GhcTc (LHsCmd GhcTc)
forall idL idR body.
XLastStmt idL idR body
-&gt; body -&gt; Maybe Bool -&gt; SyntaxExpr idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-var">LastStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XLastStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001038"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-956"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001037"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-957"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe Bool -&gt; TM (Maybe Bool)
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Bool
</span><a href="#local-6989586621681001036"><span class="hs-identifier hs-var">noret</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-958"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001035"><span class="hs-identifier hs-var">ret</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-959"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-type">BodyStmt</span></a></span><span> </span><span id="local-6989586621681001034"><span class="annot"><span class="annottext">XBodyStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001034"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681001033"><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001033"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621681001032"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001032"><span class="hs-identifier hs-var">bind'</span></a></span></span><span> </span><span id="local-6989586621681001031"><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001031"><span class="hs-identifier hs-var">guard'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-960"></span><span>        </span><span class="annot"><span class="annottext">(LHsCmd GhcTc
 -&gt; SyntaxExprTc -&gt; SyntaxExprTc -&gt; Stmt GhcTc (LHsCmd GhcTc))
-&gt; TM (LHsCmd GhcTc)
-&gt; TM SyntaxExprTc
-&gt; TM SyntaxExprTc
-&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBodyStmt GhcTc GhcTc (LHsCmd GhcTc)
-&gt; LHsCmd GhcTc
-&gt; SyntaxExpr GhcTc
-&gt; SyntaxExpr GhcTc
-&gt; Stmt GhcTc (LHsCmd GhcTc)
forall idL idR body.
XBodyStmt idL idR body
-&gt; body -&gt; SyntaxExpr idR -&gt; SyntaxExpr idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-var">BodyStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XBodyStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001034"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-961"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsCmd GhcTc -&gt; TM (LHsCmd GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsCmd"><span class="hs-identifier hs-var">addTickLHsCmd</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcTc
</span><a href="#local-6989586621681001033"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-962"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001032"><span class="hs-identifier hs-var">bind'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-963"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
</span><a href="#local-6989586621681001031"><span class="hs-identifier hs-var">guard'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-964"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LetStmt"><span class="hs-identifier hs-type">LetStmt</span></a></span><span> </span><span id="local-6989586621681001030"><span class="annot"><span class="annottext">XLetStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001030"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001029"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001029"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681001028"><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001028"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-965"></span><span>        </span><span class="annot"><span class="annottext">(HsLocalBinds GhcTc -&gt; Stmt GhcTc (LHsCmd GhcTc))
-&gt; TM (HsLocalBinds GhcTc) -&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLetStmt GhcTc GhcTc (LHsCmd GhcTc)
-&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
-&gt; Stmt GhcTc (LHsCmd GhcTc)
forall idL idR body.
XLetStmt idL idR body
-&gt; LHsLocalBindsLR idL idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#LetStmt"><span class="hs-identifier hs-var">LetStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XLetStmt GhcTc GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001030"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsLocalBinds GhcTc)
 -&gt; Stmt GhcTc (LHsCmd GhcTc))
-&gt; (HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc))
-&gt; HsLocalBinds GhcTc
-&gt; Stmt GhcTc (LHsCmd GhcTc)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsLocalBinds GhcTc -&gt; GenLocated SrcSpan (HsLocalBinds GhcTc)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001029"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-966"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcTc -&gt; TM (HsLocalBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsLocalBinds"><span class="hs-identifier hs-var">addTickHsLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcTc
</span><a href="#local-6989586621681001028"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-967"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span> </span><span id="local-6989586621681001027"><span class="annot"><span class="annottext">stmt :: Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001027"><span class="hs-identifier hs-var">stmt</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#RecStmt"><span class="hs-identifier hs-type">RecStmt</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-968"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001026"><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001026"><span class="hs-identifier hs-var">stmts'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc] -&gt; TM [CmdLStmt GhcTc]
</span><a href="GHC.HsToCore.Coverage.html#addTickLCmdStmts"><span class="hs-identifier hs-var">addTickLCmdStmts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; [CmdLStmt GhcTc]
forall idL idR body. StmtLR idL idR body -&gt; [LStmtLR idL idR body]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var hs-var">recS_stmts</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001027"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-969"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001025"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001025"><span class="hs-identifier hs-var">ret'</span></a></span></span><span>   </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; SyntaxExpr GhcTc
forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#recS_ret_fn"><span class="hs-identifier hs-var hs-var">recS_ret_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001027"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-970"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001024"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001024"><span class="hs-identifier hs-var">mfix'</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; SyntaxExpr GhcTc
forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#recS_mfix_fn"><span class="hs-identifier hs-var hs-var">recS_mfix_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001027"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-971"></span><span>       </span><span class="hs-special">;</span><span> </span><span id="local-6989586621681001023"><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="#local-6989586621681001023"><span class="hs-identifier hs-var">bind'</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SyntaxExpr GhcTc -&gt; TM (SyntaxExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickSyntaxExpr"><span class="hs-identifier hs-var">addTickSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var">hpcSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; SyntaxExpr GhcTc
forall idL idR body. StmtLR idL idR body -&gt; SyntaxExpr idR
</span><a href="GHC.Hs.Expr.html#recS_bind_fn"><span class="hs-identifier hs-var hs-var">recS_bind_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001027"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-972"></span><span>       </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001027"><span class="hs-identifier hs-var">stmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_stmts :: [CmdLStmt GhcTc]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var">recS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[CmdLStmt GhcTc]
</span><a href="#local-6989586621681001026"><span class="hs-identifier hs-var">stmts'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_ret_fn :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#recS_ret_fn"><span class="hs-identifier hs-var">recS_ret_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001025"><span class="hs-identifier hs-var">ret'</span></a></span><span>
</span><span id="line-973"></span><span>                      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_mfix_fn :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#recS_mfix_fn"><span class="hs-identifier hs-var">recS_mfix_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001024"><span class="hs-identifier hs-var">mfix'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_bind_fn :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#recS_bind_fn"><span class="hs-identifier hs-var">recS_bind_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
SyntaxExprTc
</span><a href="#local-6989586621681001023"><span class="hs-identifier hs-var">bind'</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-974"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeStmt"><span class="hs-identifier hs-type">ApplicativeStmt</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-975"></span><span>  </span><span class="annot"><span class="annottext">FilePath -&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;ToDo: addTickCmdStmt ApplicativeLastStmt&quot;</span></span><span>
</span><span id="line-976"></span><span>
</span><span id="line-977"></span><span class="hs-comment">-- Others should never happen in a command context.</span><span>
</span><span id="line-978"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickCmdStmt"><span class="hs-identifier hs-var">addTickCmdStmt</span></a></span><span> </span><span id="local-6989586621681001022"><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001022"><span class="hs-identifier hs-var">stmt</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc -&gt; TM (Stmt GhcTc (LHsCmd GhcTc))
forall a. HasCallStack =&gt; FilePath -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;addTickHsCmd&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc) -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Stmt GhcTc (LHsCmd GhcTc)
</span><a href="#local-6989586621681001022"><span class="hs-identifier hs-var">stmt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-979"></span><span>
</span><span id="line-980"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsRecordBinds"><span class="hs-identifier hs-type">addTickHsRecordBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsRecordBinds"><span class="hs-identifier hs-type">HsRecordBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsRecordBinds"><span class="hs-identifier hs-type">HsRecordBinds</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-981"></span><span id="addTickHsRecordBinds"><span class="annot"><span class="annottext">addTickHsRecordBinds :: HsRecordBinds GhcTc -&gt; TM (HsRecordBinds GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickHsRecordBinds"><span class="hs-identifier hs-var hs-var">addTickHsRecordBinds</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#HsRecFields"><span class="hs-identifier hs-type">HsRecFields</span></a></span><span> </span><span id="local-6989586621681001020"><span class="annot"><span class="annottext">[LHsRecField GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001020"><span class="hs-identifier hs-var">fields</span></a></span></span><span> </span><span id="local-6989586621681001019"><span class="annot"><span class="annottext">Maybe (Located Int)
</span><a href="#local-6989586621681001019"><span class="hs-identifier hs-var">dd</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-982"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>  </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001018"><span class="annot"><span class="annottext">[LHsRecField GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001018"><span class="hs-identifier hs-var">fields'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LHsRecField GhcTc (LHsExpr GhcTc)
 -&gt; TM (LHsRecField GhcTc (LHsExpr GhcTc)))
-&gt; [LHsRecField GhcTc (LHsExpr GhcTc)]
-&gt; TM [LHsRecField GhcTc (LHsExpr GhcTc)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">LHsRecField GhcTc (LHsExpr GhcTc)
-&gt; TM (LHsRecField GhcTc (LHsExpr GhcTc))
forall id.
LHsRecField' id (LHsExpr GhcTc)
-&gt; TM (LHsRecField' id (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickHsRecField"><span class="hs-identifier hs-var">addTickHsRecField</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsRecField GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001020"><span class="hs-identifier hs-var">fields</span></a></span><span>
</span><span id="line-983"></span><span>        </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">HsRecordBinds GhcTc -&gt; TM (HsRecordBinds GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LHsRecField GhcTc (LHsExpr GhcTc)]
-&gt; Maybe (Located Int) -&gt; HsRecordBinds GhcTc
forall p arg.
[LHsRecField p arg] -&gt; Maybe (Located Int) -&gt; HsRecFields p arg
</span><a href="GHC.Hs.Pat.html#HsRecFields"><span class="hs-identifier hs-var">HsRecFields</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsRecField GhcTc (LHsExpr GhcTc)]
</span><a href="#local-6989586621681001018"><span class="hs-identifier hs-var">fields'</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Located Int)
</span><a href="#local-6989586621681001019"><span class="hs-identifier hs-var">dd</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-984"></span><span>
</span><span id="line-985"></span><span id="local-6989586621681002573"><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickHsRecField"><span class="hs-identifier hs-type">addTickHsRecField</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LHsRecField%27"><span class="hs-identifier hs-type">LHsRecField'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002573"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-986"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#LHsRecField%27"><span class="hs-identifier hs-type">LHsRecField'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002573"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-987"></span><span id="addTickHsRecField"><span class="annot"><span class="annottext">addTickHsRecField :: forall id.
LHsRecField' id (LHsExpr GhcTc)
-&gt; TM (LHsRecField' id (LHsExpr GhcTc))
</span><a href="GHC.HsToCore.Coverage.html#addTickHsRecField"><span class="hs-identifier hs-var hs-var">addTickHsRecField</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621681001015"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001015"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#HsRecField"><span class="hs-identifier hs-type">HsRecField</span></a></span><span> </span><span id="local-6989586621681001013"><span class="annot"><span class="annottext">Located id
</span><a href="#local-6989586621681001013"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span id="local-6989586621681001012"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001012"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621681001011"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001011"><span class="hs-identifier hs-var">pun</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-988"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621681001010"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001010"><span class="hs-identifier hs-var">expr'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001012"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-989"></span><span>             </span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsRecField' id (LHsExpr GhcTc))
-&gt; TM (GenLocated SrcSpan (HsRecField' id (LHsExpr GhcTc)))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsRecField' id (LHsExpr GhcTc)
-&gt; GenLocated SrcSpan (HsRecField' id (LHsExpr GhcTc))
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681001015"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located id
-&gt; LHsExpr GhcTc -&gt; Bool -&gt; HsRecField' id (LHsExpr GhcTc)
forall id arg. Located id -&gt; arg -&gt; Bool -&gt; HsRecField' id arg
</span><a href="GHC.Hs.Pat.html#HsRecField"><span class="hs-identifier hs-var">HsRecField</span></a></span><span> </span><span class="annot"><span class="annottext">Located id
</span><a href="#local-6989586621681001013"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001010"><span class="hs-identifier hs-var">expr'</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681001011"><span class="hs-identifier hs-var">pun</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-990"></span><span>
</span><span id="line-991"></span><span>
</span><span id="line-992"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickArithSeqInfo"><span class="hs-identifier hs-type">addTickArithSeqInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ArithSeqInfo"><span class="hs-identifier hs-type">ArithSeqInfo</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ArithSeqInfo"><span class="hs-identifier hs-type">ArithSeqInfo</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-993"></span><span id="addTickArithSeqInfo"><span class="annot"><span class="annottext">addTickArithSeqInfo :: ArithSeqInfo GhcTc -&gt; TM (ArithSeqInfo GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickArithSeqInfo"><span class="hs-identifier hs-var hs-var">addTickArithSeqInfo</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#From"><span class="hs-identifier hs-type">From</span></a></span><span> </span><span id="local-6989586621681001008"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001008"><span class="hs-identifier hs-var">e1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-994"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (ArithSeqInfo GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc
forall id. LHsExpr id -&gt; ArithSeqInfo id
</span><a href="GHC.Hs.Expr.html#From"><span class="hs-identifier hs-var">From</span></a></span><span>
</span><span id="line-995"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001008"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-996"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickArithSeqInfo"><span class="hs-identifier hs-var">addTickArithSeqInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#FromThen"><span class="hs-identifier hs-type">FromThen</span></a></span><span> </span><span id="local-6989586621681001006"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001006"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001005"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001005"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-997"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (ArithSeqInfo GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc
forall id. LHsExpr id -&gt; LHsExpr id -&gt; ArithSeqInfo id
</span><a href="GHC.Hs.Expr.html#FromThen"><span class="hs-identifier hs-var">FromThen</span></a></span><span>
</span><span id="line-998"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001006"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-999"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001005"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1000"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickArithSeqInfo"><span class="hs-identifier hs-var">addTickArithSeqInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#FromTo"><span class="hs-identifier hs-type">FromTo</span></a></span><span> </span><span id="local-6989586621681001003"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001003"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681001002"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001002"><span class="hs-identifier hs-var">e2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1001"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (ArithSeqInfo GhcTc)
forall (m :: * -&gt; *) a1 a2 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM2"><span class="hs-identifier hs-var">liftM2</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc
forall id. LHsExpr id -&gt; LHsExpr id -&gt; ArithSeqInfo id
</span><a href="GHC.Hs.Expr.html#FromTo"><span class="hs-identifier hs-var">FromTo</span></a></span><span>
</span><span id="line-1002"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001003"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1003"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001002"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1004"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addTickArithSeqInfo"><span class="hs-identifier hs-var">addTickArithSeqInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#FromThenTo"><span class="hs-identifier hs-type">FromThenTo</span></a></span><span> </span><span id="local-6989586621681001000"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001000"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621681000999"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000999"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span id="local-6989586621681000998"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000998"><span class="hs-identifier hs-var">e3</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1005"></span><span>        </span><span class="annot"><span class="annottext">(LHsExpr GhcTc
 -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
-&gt; TM (ArithSeqInfo GhcTc)
forall (m :: * -&gt; *) a1 a2 a3 r.
Monad m =&gt;
(a1 -&gt; a2 -&gt; a3 -&gt; r) -&gt; m a1 -&gt; m a2 -&gt; m a3 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM3"><span class="hs-identifier hs-var">liftM3</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
-&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; ArithSeqInfo GhcTc
forall id.
LHsExpr id -&gt; LHsExpr id -&gt; LHsExpr id -&gt; ArithSeqInfo id
</span><a href="GHC.Hs.Expr.html#FromThenTo"><span class="hs-identifier hs-var">FromThenTo</span></a></span><span>
</span><span id="line-1006"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681001000"><span class="hs-identifier hs-var">e1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1007"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000999"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1008"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#addTickLHsExpr"><span class="hs-identifier hs-var">addTickLHsExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000998"><span class="hs-identifier hs-var">e3</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1009"></span><span>
</span><span id="line-1010"></span><span class="hs-keyword">data</span><span> </span><span id="TickTransState"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransState"><span class="hs-identifier hs-var">TickTransState</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="TT"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TT"><span class="hs-identifier hs-var">TT</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="tickBoxCount"><span class="annot"><span class="annottext">TickTransState -&gt; Int
</span><a href="GHC.HsToCore.Coverage.html#tickBoxCount"><span class="hs-identifier hs-var hs-var">tickBoxCount</span></a></span></span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-1011"></span><span>                         </span><span class="hs-special">,</span><span> </span><span id="mixEntries"><span class="annot"><span class="annottext">TickTransState -&gt; [MixEntry_]
</span><a href="GHC.HsToCore.Coverage.html#mixEntries"><span class="hs-identifier hs-var hs-var">mixEntries</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#MixEntry_"><span class="hs-identifier hs-type">MixEntry_</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1012"></span><span>                         </span><span class="hs-special">,</span><span> </span><span id="ccIndices"><span class="annot"><span class="annottext">TickTransState -&gt; CostCentreState
</span><a href="GHC.HsToCore.Coverage.html#ccIndices"><span class="hs-identifier hs-var hs-var">ccIndices</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.CostCentre.State.html#CostCentreState"><span class="hs-identifier hs-type">CostCentreState</span></a></span><span>
</span><span id="line-1013"></span><span>                         </span><span class="hs-special">}</span><span>
</span><span id="line-1014"></span><span>
</span><span id="line-1015"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-type">addMixEntry</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#MixEntry_"><span class="hs-identifier hs-type">MixEntry_</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-1016"></span><span id="addMixEntry"><span class="annot"><span class="annottext">addMixEntry :: MixEntry_ -&gt; TM Int
</span><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-var hs-var">addMixEntry</span></a></span></span><span> </span><span id="local-6989586621681000996"><span class="annot"><span class="annottext">MixEntry_
</span><a href="#local-6989586621681000996"><span class="hs-identifier hs-var">ent</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1017"></span><span>  </span><span id="local-6989586621681000995"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000995"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TickTransState -&gt; Int
</span><a href="GHC.HsToCore.Coverage.html#tickBoxCount"><span class="hs-identifier hs-var hs-var">tickBoxCount</span></a></span><span> </span><span class="annot"><span class="annottext">(TickTransState -&gt; Int) -&gt; TM TickTransState -&gt; TM Int
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransState
</span><a href="GHC.HsToCore.Coverage.html#getState"><span class="hs-identifier hs-var">getState</span></a></span><span>
</span><span id="line-1018"></span><span>  </span><span class="annot"><span class="annottext">(TickTransState -&gt; TickTransState) -&gt; TM ()
</span><a href="GHC.HsToCore.Coverage.html#setState"><span class="hs-identifier hs-var">setState</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransState -&gt; TickTransState) -&gt; TM ())
-&gt; (TickTransState -&gt; TickTransState) -&gt; TM ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681000992"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000992"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1019"></span><span>    </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000992"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">tickBoxCount :: Int
</span><a href="GHC.HsToCore.Coverage.html#tickBoxCount"><span class="hs-identifier hs-var">tickBoxCount</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000995"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-1020"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mixEntries :: [MixEntry_]
</span><a href="GHC.HsToCore.Coverage.html#mixEntries"><span class="hs-identifier hs-var">mixEntries</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">MixEntry_
</span><a href="#local-6989586621681000996"><span class="hs-identifier hs-var">ent</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; [MixEntry_] -&gt; [MixEntry_]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">TickTransState -&gt; [MixEntry_]
</span><a href="GHC.HsToCore.Coverage.html#mixEntries"><span class="hs-identifier hs-var hs-var">mixEntries</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000992"><span class="hs-identifier hs-var">st</span></a></span><span>
</span><span id="line-1021"></span><span>       </span><span class="hs-special">}</span><span>
</span><span id="line-1022"></span><span>  </span><span class="annot"><span class="annottext">Int -&gt; TM Int
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000995"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-1023"></span><span>
</span><span id="line-1024"></span><span class="hs-keyword">data</span><span> </span><span id="TickTransEnv"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransEnv"><span class="hs-identifier hs-var">TickTransEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="TTE"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TTE"><span class="hs-identifier hs-var">TTE</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="fileName"><span class="annot"><span class="annottext">TickTransEnv -&gt; FastString
</span><a href="GHC.HsToCore.Coverage.html#fileName"><span class="hs-identifier hs-var hs-var">fileName</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-1025"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="density"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickDensity
</span><a href="GHC.HsToCore.Coverage.html#density"><span class="hs-identifier hs-var hs-var">density</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span>
</span><span id="line-1026"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="tte_dflags"><span class="annot"><span class="annottext">TickTransEnv -&gt; DynFlags
</span><a href="GHC.HsToCore.Coverage.html#tte_dflags"><span class="hs-identifier hs-var hs-var">tte_dflags</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span>
</span><span id="line-1027"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="exports"><span class="annot"><span class="annottext">TickTransEnv -&gt; NameSet
</span><a href="GHC.HsToCore.Coverage.html#exports"><span class="hs-identifier hs-var hs-var">exports</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Set.html#NameSet"><span class="hs-identifier hs-type">NameSet</span></a></span><span>
</span><span id="line-1028"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="inlines"><span class="annot"><span class="annottext">TickTransEnv -&gt; VarSet
</span><a href="GHC.HsToCore.Coverage.html#inlines"><span class="hs-identifier hs-var hs-var">inlines</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.Set.html#VarSet"><span class="hs-identifier hs-type">VarSet</span></a></span><span>
</span><span id="line-1029"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="declPath"><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1030"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="inScope"><span class="annot"><span class="annottext">TickTransEnv -&gt; VarSet
</span><a href="GHC.HsToCore.Coverage.html#inScope"><span class="hs-identifier hs-var hs-var">inScope</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.Set.html#VarSet"><span class="hs-identifier hs-type">VarSet</span></a></span><span>
</span><span id="line-1031"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="blackList"><span class="annot"><span class="annottext">TickTransEnv -&gt; Set RealSrcSpan
</span><a href="GHC.HsToCore.Coverage.html#blackList"><span class="hs-identifier hs-var hs-var">blackList</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span>
</span><span id="line-1032"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="this_mod"><span class="annot"><span class="annottext">TickTransEnv -&gt; Module
</span><a href="GHC.HsToCore.Coverage.html#this_mod"><span class="hs-identifier hs-var hs-var">this_mod</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span>
</span><span id="line-1033"></span><span>                        </span><span class="hs-special">,</span><span> </span><span id="tickishType"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickishType
</span><a href="GHC.HsToCore.Coverage.html#tickishType"><span class="hs-identifier hs-var hs-var">tickishType</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickishType"><span class="hs-identifier hs-type">TickishType</span></a></span><span>
</span><span id="line-1034"></span><span>                        </span><span class="hs-special">}</span><span>
</span><span id="line-1035"></span><span>
</span><span id="line-1036"></span><span class="hs-comment">--      deriving Show</span><span>
</span><span id="line-1037"></span><span>
</span><span id="line-1038"></span><span class="hs-keyword">data</span><span> </span><span id="TickishType"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickishType"><span class="hs-identifier hs-var">TickishType</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="ProfNotes"><span class="annot"><a href="GHC.HsToCore.Coverage.html#ProfNotes"><span class="hs-identifier hs-var">ProfNotes</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="HpcTicks"><span class="annot"><a href="GHC.HsToCore.Coverage.html#HpcTicks"><span class="hs-identifier hs-var">HpcTicks</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="Breakpoints"><span class="annot"><a href="GHC.HsToCore.Coverage.html#Breakpoints"><span class="hs-identifier hs-var">Breakpoints</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="SourceNotes"><span class="annot"><a href="GHC.HsToCore.Coverage.html#SourceNotes"><span class="hs-identifier hs-var">SourceNotes</span></a></span></span><span>
</span><span id="line-1039"></span><span>                 </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681000987"><span id="local-6989586621681000989"><span class="annot"><span class="annottext">TickishType -&gt; TickishType -&gt; Bool
(TickishType -&gt; TickishType -&gt; Bool)
-&gt; (TickishType -&gt; TickishType -&gt; Bool) -&gt; Eq TickishType
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: TickishType -&gt; TickishType -&gt; Bool
$c/= :: TickishType -&gt; TickishType -&gt; Bool
== :: TickishType -&gt; TickishType -&gt; Bool
$c== :: TickishType -&gt; TickishType -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-1040"></span><span>
</span><span id="line-1041"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#coveragePasses"><span class="hs-identifier hs-type">coveragePasses</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickishType"><span class="hs-identifier hs-type">TickishType</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1042"></span><span id="coveragePasses"><span class="annot"><span class="annottext">coveragePasses :: DynFlags -&gt; [TickishType]
</span><a href="GHC.HsToCore.Coverage.html#coveragePasses"><span class="hs-identifier hs-var hs-var">coveragePasses</span></a></span></span><span> </span><span id="local-6989586621681000986"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000986"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1043"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; TickishType -&gt; [TickishType] -&gt; [TickishType]
forall {a}. Bool -&gt; a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681000985"><span class="hs-identifier hs-var">ifa</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#breakpointsEnabled"><span class="hs-identifier hs-var">breakpointsEnabled</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000986"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span>          </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#Breakpoints"><span class="hs-identifier hs-var">Breakpoints</span></a></span><span> </span><span class="annot"><span class="annottext">([TickishType] -&gt; [TickishType]) -&gt; [TickishType] -&gt; [TickishType]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-1044"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; TickishType -&gt; [TickishType] -&gt; [TickishType]
forall {a}. Bool -&gt; a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681000985"><span class="hs-identifier hs-var">ifa</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GeneralFlag -&gt; DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#gopt"><span class="hs-identifier hs-var">gopt</span></a></span><span> </span><span class="annot"><span class="annottext">GeneralFlag
</span><a href="GHC.Driver.Flags.html#Opt_Hpc"><span class="hs-identifier hs-var">Opt_Hpc</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000986"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span>                </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#HpcTicks"><span class="hs-identifier hs-var">HpcTicks</span></a></span><span> </span><span class="annot"><span class="annottext">([TickishType] -&gt; [TickishType]) -&gt; [TickishType] -&gt; [TickishType]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-1045"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; TickishType -&gt; [TickishType] -&gt; [TickishType]
forall {a}. Bool -&gt; a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681000985"><span class="hs-identifier hs-var">ifa</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#sccProfilingEnabled"><span class="hs-identifier hs-var">sccProfilingEnabled</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000986"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span>
</span><span id="line-1046"></span><span>         </span><span class="annot"><span class="annottext">DynFlags -&gt; ProfAuto
</span><a href="GHC.Driver.Session.html#profAuto"><span class="hs-identifier hs-var hs-var">profAuto</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000986"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">ProfAuto -&gt; ProfAuto -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">ProfAuto
</span><a href="GHC.Driver.Session.html#NoProfAuto"><span class="hs-identifier hs-var">NoProfAuto</span></a></span><span class="hs-special">)</span><span>      </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#ProfNotes"><span class="hs-identifier hs-var">ProfNotes</span></a></span><span> </span><span class="annot"><span class="annottext">([TickishType] -&gt; [TickishType]) -&gt; [TickishType] -&gt; [TickishType]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-1047"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; TickishType -&gt; [TickishType] -&gt; [TickishType]
forall {a}. Bool -&gt; a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681000985"><span class="hs-identifier hs-var">ifa</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; Int
</span><a href="GHC.Driver.Session.html#debugLevel"><span class="hs-identifier hs-var hs-var">debugLevel</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000986"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span>              </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#SourceNotes"><span class="hs-identifier hs-var">SourceNotes</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1048"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681000985"><span class="annot"><span class="annottext">ifa :: Bool -&gt; a -&gt; [a] -&gt; [a]
</span><a href="#local-6989586621681000985"><span class="hs-identifier hs-var hs-var">ifa</span></a></span></span><span> </span><span id="local-6989586621681000980"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000980"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621681000979"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000979"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681000978"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621681000978"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000980"><span class="hs-identifier hs-var">f</span></a></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000979"><span class="hs-identifier hs-var">x</span></a></span><span class="annot"><span class="annottext">a -&gt; [a] -&gt; [a]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621681000978"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1049"></span><span>                   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621681000978"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1050"></span><span>
</span><span id="line-1051"></span><span class="hs-comment">-- | Should we produce 'Breakpoint' ticks?</span><span>
</span><span id="line-1052"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#breakpointsEnabled"><span class="hs-identifier hs-type">breakpointsEnabled</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-1053"></span><span id="breakpointsEnabled"><span class="annot"><span class="annottext">breakpointsEnabled :: DynFlags -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#breakpointsEnabled"><span class="hs-identifier hs-var hs-var">breakpointsEnabled</span></a></span></span><span> </span><span id="local-6989586621681000977"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000977"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; HscTarget
</span><a href="GHC.Driver.Session.html#hscTarget"><span class="hs-identifier hs-var hs-var">hscTarget</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000977"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">HscTarget -&gt; HscTarget -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">HscTarget
</span><a href="GHC.Driver.Session.html#HscInterpreted"><span class="hs-identifier hs-var">HscInterpreted</span></a></span><span>
</span><span id="line-1054"></span><span>
</span><span id="line-1055"></span><span class="hs-comment">-- | Tickishs that only make sense when their source code location</span><span>
</span><span id="line-1056"></span><span class="hs-comment">-- refers to the current file. This might not always be true due to</span><span>
</span><span id="line-1057"></span><span class="hs-comment">-- LINE pragmas in the code - which would confuse at least HPC.</span><span>
</span><span id="line-1058"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#tickSameFileOnly"><span class="hs-identifier hs-type">tickSameFileOnly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickishType"><span class="hs-identifier hs-type">TickishType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-1059"></span><span id="tickSameFileOnly"><span class="annot"><span class="annottext">tickSameFileOnly :: TickishType -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#tickSameFileOnly"><span class="hs-identifier hs-var hs-var">tickSameFileOnly</span></a></span></span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#HpcTicks"><span class="hs-identifier hs-var">HpcTicks</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-1060"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#tickSameFileOnly"><span class="hs-identifier hs-var">tickSameFileOnly</span></a></span><span> </span><span id="local-6989586621681000973"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681000973"><span class="hs-identifier hs-var">_other</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-1061"></span><span>
</span><span id="line-1062"></span><span class="hs-keyword">type</span><span> </span><span id="FreeVars"><span class="annot"><a href="GHC.HsToCore.Coverage.html#FreeVars"><span class="hs-identifier hs-var">FreeVars</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.Name.Occurrence.html#OccEnv"><span class="hs-identifier hs-type">OccEnv</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span>
</span><span id="line-1063"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-type">noFVs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#FreeVars"><span class="hs-identifier hs-type">FreeVars</span></a></span><span>
</span><span id="line-1064"></span><span id="noFVs"><span class="annot"><span class="annottext">noFVs :: FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var hs-var">noFVs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FreeVars
forall a. OccEnv a
</span><a href="GHC.Types.Name.Occurrence.html#emptyOccEnv"><span class="hs-identifier hs-var">emptyOccEnv</span></a></span><span>
</span><span id="line-1065"></span><span>
</span><span id="line-1066"></span><span class="hs-comment">-- Note [freevars]</span><span>
</span><span id="line-1067"></span><span class="hs-comment">--   For breakpoints we want to collect the free variables of an</span><span>
</span><span id="line-1068"></span><span class="hs-comment">--   expression for pinning on the HsTick.  We don't want to collect</span><span>
</span><span id="line-1069"></span><span class="hs-comment">--   *all* free variables though: in particular there's no point pinning</span><span>
</span><span id="line-1070"></span><span class="hs-comment">--   on free variables that are will otherwise be in scope at the GHCi</span><span>
</span><span id="line-1071"></span><span class="hs-comment">--   prompt, which means all top-level bindings.  Unfortunately detecting</span><span>
</span><span id="line-1072"></span><span class="hs-comment">--   top-level bindings isn't easy (collectHsBindsBinders on the top-level</span><span>
</span><span id="line-1073"></span><span class="hs-comment">--   bindings doesn't do it), so we keep track of a set of &quot;in-scope&quot;</span><span>
</span><span id="line-1074"></span><span class="hs-comment">--   variables in addition to the free variables, and the former is used</span><span>
</span><span id="line-1075"></span><span class="hs-comment">--   to filter additions to the latter.  This gives us complete control</span><span>
</span><span id="line-1076"></span><span class="hs-comment">--   over what free variables we track.</span><span>
</span><span id="line-1077"></span><span>
</span><span id="line-1078"></span><span class="hs-keyword">newtype</span><span> </span><span id="TM"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span></span><span> </span><span id="local-6989586621681002749"><span class="annot"><a href="#local-6989586621681002749"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="TM"><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="unTM"><span class="annot"><span class="annottext">forall a.
TM a
-&gt; TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="GHC.HsToCore.Coverage.html#unTM"><span class="hs-identifier hs-var hs-var">unTM</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransEnv"><span class="hs-identifier hs-type">TickTransEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransState"><span class="hs-identifier hs-type">TickTransState</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621681002749"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#FreeVars"><span class="hs-identifier hs-type">FreeVars</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransState"><span class="hs-identifier hs-type">TickTransState</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-1079"></span><span>    </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681000966"><span id="local-6989586621681000968"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; TM a -&gt; TM b)
-&gt; (forall a b. a -&gt; TM b -&gt; TM a) -&gt; Functor TM
forall a b. a -&gt; TM b -&gt; TM a
forall a b. (a -&gt; b) -&gt; TM a -&gt; TM b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; TM b -&gt; TM a
$c&lt;$ :: forall a b. a -&gt; TM b -&gt; TM a
fmap :: forall a b. (a -&gt; b) -&gt; TM a -&gt; TM b
$cfmap :: forall a b. (a -&gt; b) -&gt; TM a -&gt; TM b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-1080"></span><span>        </span><span class="hs-comment">-- a combination of a state monad (TickTransState) and a writer</span><span>
</span><span id="line-1081"></span><span>        </span><span class="hs-comment">-- monad (FreeVars).</span><span>
</span><span id="line-1082"></span><span>
</span><span id="line-1083"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621681000955"><span id="local-6989586621681000957"><span id="local-6989586621681000959"><span class="annot"><a href="../../base/src/GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1084"></span><span>    </span><span id="local-6989586621681000953"><span class="annot"><span class="annottext">pure :: forall a. a -&gt; TM a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var hs-var hs-var hs-var">pure</span></a></span></span><span> </span><span id="local-6989586621681000952"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000952"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
 -&gt; TM a)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000951"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000951"><span class="hs-identifier hs-var">_env</span></a></span></span><span> </span><span id="local-6989586621681000950"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000950"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000952"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000950"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1085"></span><span>    </span><span id="local-6989586621681000948"><span class="annot"><span class="annottext">&lt;*&gt; :: forall a b. TM (a -&gt; b) -&gt; TM a -&gt; TM b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var hs-var hs-var hs-var">(&lt;*&gt;)</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TM (a -&gt; b) -&gt; TM a -&gt; TM b
forall (m :: * -&gt; *) a b. Monad m =&gt; m (a -&gt; b) -&gt; m a -&gt; m b
</span><a href="../../base/src/GHC.Base.html#ap"><span class="hs-identifier hs-var">ap</span></a></span><span>
</span><span id="line-1086"></span><span>
</span><span id="line-1087"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621681000940"><span id="local-6989586621681000942"><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1088"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span id="local-6989586621681000938"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000938"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681000937"><span class="annot"><span class="annottext">&gt;&gt;= :: forall a b. TM a -&gt; (a -&gt; TM b) -&gt; TM b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var hs-var hs-var hs-var">&gt;&gt;=</span></a></span></span><span> </span><span id="local-6989586621681000936"><span class="annot"><span class="annottext">a -&gt; TM b
</span><a href="#local-6989586621681000936"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransState -&gt; (b, FreeVars, TickTransState))
-&gt; TM b
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv -&gt; TickTransState -&gt; (b, FreeVars, TickTransState))
 -&gt; TM b)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (b, FreeVars, TickTransState))
-&gt; TM b
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000935"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000935"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000934"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000934"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1089"></span><span>                                </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000938"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000935"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000934"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1090"></span><span>                                  </span><span class="hs-special">(</span><span id="local-6989586621681000933"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000933"><span class="hs-identifier hs-var">r1</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681000932"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000932"><span class="hs-identifier hs-var">fv1</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681000931"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000931"><span class="hs-identifier hs-var">st1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1091"></span><span>                                     </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TM b
-&gt; TickTransEnv -&gt; TickTransState -&gt; (b, FreeVars, TickTransState)
forall a.
TM a
-&gt; TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="GHC.HsToCore.Coverage.html#unTM"><span class="hs-identifier hs-var hs-var">unTM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; TM b
</span><a href="#local-6989586621681000936"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000933"><span class="hs-identifier hs-var">r1</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000935"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000931"><span class="hs-identifier hs-var">st1</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1092"></span><span>                                       </span><span class="hs-special">(</span><span id="local-6989586621681000930"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621681000930"><span class="hs-identifier hs-var">r2</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681000929"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000929"><span class="hs-identifier hs-var">fv2</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681000928"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000928"><span class="hs-identifier hs-var">st2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1093"></span><span>                                          </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621681000930"><span class="hs-identifier hs-var">r2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000932"><span class="hs-identifier hs-var">fv1</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars -&gt; FreeVars -&gt; FreeVars
forall a. OccEnv a -&gt; OccEnv a -&gt; OccEnv a
</span><a href="GHC.Types.Name.Occurrence.html#plusOccEnv"><span class="hs-operator hs-var">`plusOccEnv`</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000929"><span class="hs-identifier hs-var">fv2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000928"><span class="hs-identifier hs-var">st2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1094"></span><span>
</span><span id="line-1095"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#HasDynFlags"><span class="hs-identifier hs-type">HasDynFlags</span></a></span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1096"></span><span>  </span><span id="local-6989586621681000924"><span class="annot"><span class="annottext">getDynFlags :: TM DynFlags
</span><a href="GHC.Driver.Session.html#getDynFlags"><span class="hs-identifier hs-var hs-var hs-var hs-var">getDynFlags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; (DynFlags, FreeVars, TickTransState))
-&gt; TM DynFlags
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; (DynFlags, FreeVars, TickTransState))
 -&gt; TM DynFlags)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (DynFlags, FreeVars, TickTransState))
-&gt; TM DynFlags
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000922"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000922"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000921"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000921"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; DynFlags
</span><a href="GHC.HsToCore.Coverage.html#tte_dflags"><span class="hs-identifier hs-var hs-var">tte_dflags</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000922"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000921"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1097"></span><span>
</span><span id="line-1098"></span><span class="hs-comment">-- | Get the next HPC cost centre index for a given centre name</span><span>
</span><span id="line-1099"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#getCCIndexM"><span class="hs-identifier hs-type">getCCIndexM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="GHC.Types.CostCentre.State.html#CostCentreIndex"><span class="hs-identifier hs-type">CostCentreIndex</span></a></span><span>
</span><span id="line-1100"></span><span id="getCCIndexM"><span class="annot"><span class="annottext">getCCIndexM :: FastString -&gt; TM CostCentreIndex
</span><a href="GHC.HsToCore.Coverage.html#getCCIndexM"><span class="hs-identifier hs-var hs-var">getCCIndexM</span></a></span></span><span> </span><span id="local-6989586621681000919"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681000919"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; (CostCentreIndex, FreeVars, TickTransState))
-&gt; TM CostCentreIndex
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; (CostCentreIndex, FreeVars, TickTransState))
 -&gt; TM CostCentreIndex)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (CostCentreIndex, FreeVars, TickTransState))
-&gt; TM CostCentreIndex
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">TickTransEnv
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681000918"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000918"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">let</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681000917"><span class="annot"><span class="annottext">CostCentreIndex
</span><a href="#local-6989586621681000917"><span class="hs-identifier hs-var">idx</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000916"><span class="annot"><span class="annottext">CostCentreState
</span><a href="#local-6989586621681000916"><span class="hs-identifier hs-var">is'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; CostCentreState -&gt; (CostCentreIndex, CostCentreState)
</span><a href="GHC.Types.CostCentre.State.html#getCCIndex"><span class="hs-identifier hs-var">getCCIndex</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681000919"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">(CostCentreState -&gt; (CostCentreIndex, CostCentreState))
-&gt; CostCentreState -&gt; (CostCentreIndex, CostCentreState)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-1101"></span><span>                                                 </span><span class="annot"><span class="annottext">TickTransState -&gt; CostCentreState
</span><a href="GHC.HsToCore.Coverage.html#ccIndices"><span class="hs-identifier hs-var hs-var">ccIndices</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000918"><span class="hs-identifier hs-var">st</span></a></span><span>
</span><span id="line-1102"></span><span>                              </span><span class="hs-keyword">in</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CostCentreIndex
</span><a href="#local-6989586621681000917"><span class="hs-identifier hs-var">idx</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000918"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ccIndices :: CostCentreState
</span><a href="GHC.HsToCore.Coverage.html#ccIndices"><span class="hs-identifier hs-var">ccIndices</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CostCentreState
</span><a href="#local-6989586621681000916"><span class="hs-identifier hs-var">is'</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-1103"></span><span>
</span><span id="line-1104"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#getState"><span class="hs-identifier hs-type">getState</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransState"><span class="hs-identifier hs-type">TickTransState</span></a></span><span>
</span><span id="line-1105"></span><span id="getState"><span class="annot"><span class="annottext">getState :: TM TickTransState
</span><a href="GHC.HsToCore.Coverage.html#getState"><span class="hs-identifier hs-var hs-var">getState</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; (TickTransState, FreeVars, TickTransState))
-&gt; TM TickTransState
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; (TickTransState, FreeVars, TickTransState))
 -&gt; TM TickTransState)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (TickTransState, FreeVars, TickTransState))
-&gt; TM TickTransState
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681000914"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000914"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000914"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000914"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1106"></span><span>
</span><span id="line-1107"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#setState"><span class="hs-identifier hs-type">setState</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransState"><span class="hs-identifier hs-type">TickTransState</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransState"><span class="hs-identifier hs-type">TickTransState</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-1108"></span><span id="setState"><span class="annot"><span class="annottext">setState :: (TickTransState -&gt; TickTransState) -&gt; TM ()
</span><a href="GHC.HsToCore.Coverage.html#setState"><span class="hs-identifier hs-var hs-var">setState</span></a></span></span><span> </span><span id="local-6989586621681000913"><span class="annot"><span class="annottext">TickTransState -&gt; TickTransState
</span><a href="#local-6989586621681000913"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransState -&gt; ((), FreeVars, TickTransState))
-&gt; TM ()
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv -&gt; TickTransState -&gt; ((), FreeVars, TickTransState))
 -&gt; TM ())
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; ((), FreeVars, TickTransState))
-&gt; TM ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681000912"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000912"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState -&gt; TickTransState
</span><a href="#local-6989586621681000913"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000912"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1109"></span><span>
</span><span id="line-1110"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-type">getEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransEnv"><span class="hs-identifier hs-type">TickTransEnv</span></a></span><span>
</span><span id="line-1111"></span><span id="getEnv"><span class="annot"><span class="annottext">getEnv :: TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var hs-var">getEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; (TickTransEnv, FreeVars, TickTransState))
-&gt; TM TickTransEnv
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; (TickTransEnv, FreeVars, TickTransState))
 -&gt; TM TickTransEnv)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (TickTransEnv, FreeVars, TickTransState))
-&gt; TM TickTransEnv
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000911"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000911"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000910"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000910"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000911"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000910"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1112"></span><span>
</span><span id="line-1113"></span><span id="local-6989586621681002694"><span class="annot"><a href="GHC.HsToCore.Coverage.html#withEnv"><span class="hs-identifier hs-type">withEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransEnv"><span class="hs-identifier hs-type">TickTransEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickTransEnv"><span class="hs-identifier hs-type">TickTransEnv</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002694"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002694"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1114"></span><span id="withEnv"><span class="annot"><span class="annottext">withEnv :: forall a. (TickTransEnv -&gt; TickTransEnv) -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#withEnv"><span class="hs-identifier hs-var hs-var">withEnv</span></a></span></span><span> </span><span id="local-6989586621681000909"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransEnv
</span><a href="#local-6989586621681000909"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span id="local-6989586621681000908"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000908"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
 -&gt; TM a)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000907"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000907"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000906"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000906"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1115"></span><span>                                 </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000908"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransEnv
</span><a href="#local-6989586621681000909"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000907"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000906"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1116"></span><span>                                   </span><span class="hs-special">(</span><span id="local-6989586621681000905"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000905"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000904"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000904"><span class="hs-identifier hs-var">fvs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000903"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000903"><span class="hs-identifier hs-var">st'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000905"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000904"><span class="hs-identifier hs-var">fvs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000903"><span class="hs-identifier hs-var">st'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1117"></span><span>
</span><span id="line-1118"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-type">getDensity</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span>
</span><span id="line-1119"></span><span id="getDensity"><span class="annot"><span class="annottext">getDensity :: TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var hs-var">getDensity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; (TickDensity, FreeVars, TickTransState))
-&gt; TM TickDensity
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; (TickDensity, FreeVars, TickTransState))
 -&gt; TM TickDensity)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (TickDensity, FreeVars, TickTransState))
-&gt; TM TickDensity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681000902"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000902"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000901"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000901"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickDensity
</span><a href="GHC.HsToCore.Coverage.html#density"><span class="hs-identifier hs-var hs-var">density</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000902"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000901"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1120"></span><span>
</span><span id="line-1121"></span><span id="local-6989586621681002647"><span class="annot"><a href="GHC.HsToCore.Coverage.html#ifDensity"><span class="hs-identifier hs-type">ifDensity</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TickDensity"><span class="hs-identifier hs-type">TickDensity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002647"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002647"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002647"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1122"></span><span id="ifDensity"><span class="annot"><span class="annottext">ifDensity :: forall a. TickDensity -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifDensity"><span class="hs-identifier hs-var hs-var">ifDensity</span></a></span></span><span> </span><span id="local-6989586621681000898"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681000898"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621681000897"><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000897"><span class="hs-identifier hs-var">th</span></a></span></span><span> </span><span id="local-6989586621681000896"><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000896"><span class="hs-identifier hs-var">el</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621681000895"><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681000895"><span class="hs-identifier hs-var">d0</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickDensity
</span><a href="GHC.HsToCore.Coverage.html#getDensity"><span class="hs-identifier hs-var">getDensity</span></a></span><span class="hs-special">;</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681000898"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">TickDensity -&gt; TickDensity -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">TickDensity
</span><a href="#local-6989586621681000895"><span class="hs-identifier hs-var">d0</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000897"><span class="hs-identifier hs-var">th</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000896"><span class="hs-identifier hs-var">el</span></a></span><span>
</span><span id="line-1123"></span><span>
</span><span id="line-1124"></span><span id="local-6989586621681002679"><span class="annot"><a href="GHC.HsToCore.Coverage.html#getFreeVars"><span class="hs-identifier hs-type">getFreeVars</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002679"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#FreeVars"><span class="hs-identifier hs-type">FreeVars</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621681002679"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-1125"></span><span id="getFreeVars"><span class="annot"><span class="annottext">getFreeVars :: forall a. TM a -&gt; TM (FreeVars, a)
</span><a href="GHC.HsToCore.Coverage.html#getFreeVars"><span class="hs-identifier hs-var hs-var">getFreeVars</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span id="local-6989586621681000894"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000894"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1126"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; ((FreeVars, a), FreeVars, TickTransState))
-&gt; TM (FreeVars, a)
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; ((FreeVars, a), FreeVars, TickTransState))
 -&gt; TM (FreeVars, a))
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; ((FreeVars, a), FreeVars, TickTransState))
-&gt; TM (FreeVars, a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000893"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000893"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000892"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000892"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000894"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000893"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000892"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681000891"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000891"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000890"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000890"><span class="hs-identifier hs-var">fv</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000889"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000889"><span class="hs-identifier hs-var">st'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000890"><span class="hs-identifier hs-var">fv</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000891"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000890"><span class="hs-identifier hs-var">fv</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000889"><span class="hs-identifier hs-var">st'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1127"></span><span>
</span><span id="line-1128"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#freeVar"><span class="hs-identifier hs-type">freeVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-1129"></span><span id="freeVar"><span class="annot"><span class="annottext">freeVar :: Id -&gt; TM ()
</span><a href="GHC.HsToCore.Coverage.html#freeVar"><span class="hs-identifier hs-var hs-var">freeVar</span></a></span></span><span> </span><span id="local-6989586621681000888"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681000888"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransState -&gt; ((), FreeVars, TickTransState))
-&gt; TM ()
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv -&gt; TickTransState -&gt; ((), FreeVars, TickTransState))
 -&gt; TM ())
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; ((), FreeVars, TickTransState))
-&gt; TM ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000887"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000887"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000886"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000886"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1130"></span><span>                </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681000888"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; VarSet -&gt; Bool
</span><a href="GHC.Types.Var.Set.html#elemVarSet"><span class="hs-operator hs-var">`elemVarSet`</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; VarSet
</span><a href="GHC.HsToCore.Coverage.html#inScope"><span class="hs-identifier hs-var hs-var">inScope</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000887"><span class="hs-identifier hs-var">env</span></a></span><span>
</span><span id="line-1131"></span><span>                   </span><span class="hs-keyword">then</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">OccName -&gt; Id -&gt; FreeVars
forall a. OccName -&gt; a -&gt; OccEnv a
</span><a href="GHC.Types.Name.Occurrence.html#unitOccEnv"><span class="hs-identifier hs-var">unitOccEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; OccName
</span><a href="GHC.Types.Name.html#nameOccName"><span class="hs-identifier hs-var">nameOccName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Id.html#idName"><span class="hs-identifier hs-var">idName</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681000888"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681000888"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000886"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1132"></span><span>                   </span><span class="hs-keyword">else</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000886"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1133"></span><span>
</span><span id="line-1134"></span><span id="local-6989586621681002678"><span class="annot"><a href="GHC.HsToCore.Coverage.html#addPathEntry"><span class="hs-identifier hs-type">addPathEntry</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002678"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002678"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1135"></span><span id="addPathEntry"><span class="annot"><span class="annottext">addPathEntry :: forall a. FilePath -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#addPathEntry"><span class="hs-identifier hs-var hs-var">addPathEntry</span></a></span></span><span> </span><span id="local-6989586621681000883"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681000883"><span class="hs-identifier hs-var">nm</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransEnv) -&gt; TM a -&gt; TM a
forall a. (TickTransEnv -&gt; TickTransEnv) -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#withEnv"><span class="hs-identifier hs-var">withEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000882"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000882"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000882"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">declPath :: [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var">declPath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000882"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; [FilePath] -&gt; [FilePath]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681000883"><span class="hs-identifier hs-var">nm</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-1136"></span><span>
</span><span id="line-1137"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#getPathEntry"><span class="hs-identifier hs-type">getPathEntry</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1138"></span><span id="getPathEntry"><span class="annot"><span class="annottext">getPathEntry :: TM [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#getPathEntry"><span class="hs-identifier hs-var hs-var">getPathEntry</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; [FilePath]) -&gt; TM TickTransEnv -&gt; TM [FilePath]
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-operator hs-var">`liftM`</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1139"></span><span>
</span><span id="line-1140"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#getFileName"><span class="hs-identifier hs-type">getFileName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-1141"></span><span id="getFileName"><span class="annot"><span class="annottext">getFileName :: TM FastString
</span><a href="GHC.HsToCore.Coverage.html#getFileName"><span class="hs-identifier hs-var hs-var">getFileName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; FastString
</span><a href="GHC.HsToCore.Coverage.html#fileName"><span class="hs-identifier hs-var hs-var">fileName</span></a></span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; FastString) -&gt; TM TickTransEnv -&gt; TM FastString
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-operator hs-var">`liftM`</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1142"></span><span>
</span><span id="line-1143"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodSrcSpan%27"><span class="hs-identifier hs-type">isGoodSrcSpan'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-1144"></span><span id="isGoodSrcSpan%27"><span class="annot"><span class="annottext">isGoodSrcSpan' :: SrcSpan -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodSrcSpan%27"><span class="hs-identifier hs-var hs-var">isGoodSrcSpan'</span></a></span></span><span> </span><span id="local-6989586621681000879"><span class="annot"><span class="annottext">pos :: SrcSpan
</span><a href="#local-6989586621681000879"><span class="hs-identifier hs-var">pos</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#srcSpanStart"><span class="hs-identifier hs-var">srcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000879"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">SrcLoc -&gt; SrcLoc -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#srcSpanEnd"><span class="hs-identifier hs-var">srcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000879"><span class="hs-identifier hs-var">pos</span></a></span><span>
</span><span id="line-1145"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodSrcSpan%27"><span class="hs-identifier hs-var">isGoodSrcSpan'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-1146"></span><span>
</span><span id="line-1147"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isGoodTickSrcSpan"><span class="hs-identifier hs-type">isGoodTickSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-1148"></span><span id="isGoodTickSrcSpan"><span class="annot"><span class="annottext">isGoodTickSrcSpan :: SrcSpan -&gt; TM Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodTickSrcSpan"><span class="hs-identifier hs-var hs-var">isGoodTickSrcSpan</span></a></span></span><span> </span><span id="local-6989586621681000875"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000875"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1149"></span><span>  </span><span id="local-6989586621681000874"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681000874"><span class="hs-identifier hs-var">file_name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM FastString
</span><a href="GHC.HsToCore.Coverage.html#getFileName"><span class="hs-identifier hs-var">getFileName</span></a></span><span>
</span><span id="line-1150"></span><span>  </span><span id="local-6989586621681000873"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681000873"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickishType
</span><a href="GHC.HsToCore.Coverage.html#tickishType"><span class="hs-identifier hs-var hs-var">tickishType</span></a></span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickishType) -&gt; TM TickTransEnv -&gt; TM TickishType
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-operator hs-var">`liftM`</span></a></span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1151"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681000872"><span class="annot"><span class="annottext">need_same_file :: Bool
</span><a href="#local-6989586621681000872"><span class="hs-identifier hs-var hs-var">need_same_file</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickishType -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#tickSameFileOnly"><span class="hs-identifier hs-var">tickSameFileOnly</span></a></span><span> </span><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681000873"><span class="hs-identifier hs-var">tickish</span></a></span><span>
</span><span id="line-1152"></span><span>      </span><span id="local-6989586621681000871"><span class="annot"><span class="annottext">same_file :: Bool
</span><a href="#local-6989586621681000871"><span class="hs-identifier hs-var hs-var">same_file</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Maybe FastString
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681000874"><span class="hs-identifier hs-var">file_name</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe FastString -&gt; Maybe FastString -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Maybe FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFileName_maybe"><span class="hs-identifier hs-var">srcSpanFileName_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000875"><span class="hs-identifier hs-var">pos</span></a></span><span>
</span><span id="line-1153"></span><span>  </span><span class="annot"><span class="annottext">Bool -&gt; TM Bool
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodSrcSpan%27"><span class="hs-identifier hs-var">isGoodSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000875"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000872"><span class="hs-identifier hs-var">need_same_file</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000871"><span class="hs-identifier hs-var">same_file</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1154"></span><span>
</span><span id="line-1155"></span><span id="local-6989586621681002377"><span class="annot"><a href="GHC.HsToCore.Coverage.html#ifGoodTickSrcSpan"><span class="hs-identifier hs-type">ifGoodTickSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002377"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002377"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002377"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1156"></span><span id="ifGoodTickSrcSpan"><span class="annot"><span class="annottext">ifGoodTickSrcSpan :: forall a. SrcSpan -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifGoodTickSrcSpan"><span class="hs-identifier hs-var hs-var">ifGoodTickSrcSpan</span></a></span></span><span> </span><span id="local-6989586621681000868"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000868"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681000867"><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000867"><span class="hs-identifier hs-var">then_code</span></a></span></span><span> </span><span id="local-6989586621681000866"><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000866"><span class="hs-identifier hs-var">else_code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1157"></span><span>  </span><span id="local-6989586621681000865"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000865"><span class="hs-identifier hs-var">good</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; TM Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodTickSrcSpan"><span class="hs-identifier hs-var">isGoodTickSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000868"><span class="hs-identifier hs-var">pos</span></a></span><span>
</span><span id="line-1158"></span><span>  </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000865"><span class="hs-identifier hs-var">good</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000867"><span class="hs-identifier hs-var">then_code</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">TM a
</span><a href="#local-6989586621681000866"><span class="hs-identifier hs-var">else_code</span></a></span><span>
</span><span id="line-1159"></span><span>
</span><span id="line-1160"></span><span id="local-6989586621681002595"><span class="annot"><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-type">bindLocals</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002595"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002595"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1161"></span><span id="bindLocals"><span class="annot"><span class="annottext">bindLocals :: forall a. [Id] -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#bindLocals"><span class="hs-identifier hs-var hs-var">bindLocals</span></a></span></span><span> </span><span id="local-6989586621681000864"><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621681000864"><span class="hs-identifier hs-var">new_ids</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span id="local-6989586621681000863"><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000863"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1162"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
 -&gt; TM a)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000862"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000862"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000861"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000861"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1163"></span><span>                 </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState)
</span><a href="#local-6989586621681000863"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000862"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">inScope :: VarSet
</span><a href="GHC.HsToCore.Coverage.html#inScope"><span class="hs-identifier hs-var">inScope</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; VarSet
</span><a href="GHC.HsToCore.Coverage.html#inScope"><span class="hs-identifier hs-var hs-var">inScope</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000862"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">VarSet -&gt; [Id] -&gt; VarSet
</span><a href="GHC.Types.Var.Set.html#extendVarSetList"><span class="hs-operator hs-var">`extendVarSetList`</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621681000864"><span class="hs-identifier hs-var">new_ids</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000861"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1164"></span><span>                   </span><span class="hs-special">(</span><span id="local-6989586621681000860"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000860"><span class="hs-identifier hs-var">r</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000859"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000859"><span class="hs-identifier hs-var">fv</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000858"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000858"><span class="hs-identifier hs-var">st'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681000860"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000859"><span class="hs-identifier hs-var">fv</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars -&gt; [OccName] -&gt; FreeVars
forall a. OccEnv a -&gt; [OccName] -&gt; OccEnv a
</span><a href="GHC.Types.Name.Occurrence.html#delListFromOccEnv"><span class="hs-operator hs-var">`delListFromOccEnv`</span></a></span><span> </span><span class="annot"><span class="annottext">[OccName]
</span><a href="#local-6989586621681000856"><span class="hs-identifier hs-var">occs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000858"><span class="hs-identifier hs-var">st'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1165"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681000856"><span class="annot"><span class="annottext">occs :: [OccName]
</span><a href="#local-6989586621681000856"><span class="hs-identifier hs-var hs-var">occs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Name -&gt; OccName
</span><a href="GHC.Types.Name.html#nameOccName"><span class="hs-identifier hs-var">nameOccName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Id.html#idName"><span class="hs-identifier hs-var">idName</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681000855"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621681000855"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621681000855"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621681000864"><span class="hs-identifier hs-var">new_ids</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-1166"></span><span>
</span><span id="line-1167"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isBlackListed"><span class="hs-identifier hs-type">isBlackListed</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-1168"></span><span id="isBlackListed"><span class="annot"><span class="annottext">isBlackListed :: SrcSpan -&gt; TM Bool
</span><a href="GHC.HsToCore.Coverage.html#isBlackListed"><span class="hs-identifier hs-var hs-var">isBlackListed</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621681000854"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000854"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TickTransEnv
 -&gt; TickTransState -&gt; (Bool, FreeVars, TickTransState))
-&gt; TM Bool
forall a.
(TickTransEnv -&gt; TickTransState -&gt; (a, FreeVars, TickTransState))
-&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-var">TM</span></a></span><span> </span><span class="annot"><span class="annottext">((TickTransEnv
  -&gt; TickTransState -&gt; (Bool, FreeVars, TickTransState))
 -&gt; TM Bool)
-&gt; (TickTransEnv
    -&gt; TickTransState -&gt; (Bool, FreeVars, TickTransState))
-&gt; TM Bool
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span> </span><span id="local-6989586621681000853"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000853"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621681000852"><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000852"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Set RealSrcSpan -&gt; Bool
forall a. Ord a =&gt; a -&gt; Set a -&gt; Bool
</span><a href="../../containers/src/Data.Set.Internal.html#member"><span class="hs-identifier hs-var">Set.member</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000854"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; Set RealSrcSpan
</span><a href="GHC.HsToCore.Coverage.html#blackList"><span class="hs-identifier hs-var hs-var">blackList</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000853"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="GHC.HsToCore.Coverage.html#noFVs"><span class="hs-identifier hs-var">noFVs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TickTransState
</span><a href="#local-6989586621681000852"><span class="hs-identifier hs-var">st</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1169"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#isBlackListed"><span class="hs-identifier hs-var">isBlackListed</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; TM Bool
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-1170"></span><span>
</span><span id="line-1171"></span><span class="hs-comment">-- the tick application inherits the source position of its</span><span>
</span><span id="line-1172"></span><span class="hs-comment">-- expression argument to support nested box allocations</span><span>
</span><span id="line-1173"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-type">allocTickBox</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1174"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1175"></span><span id="allocTickBox"><span class="annot"><span class="annottext">allocTickBox :: BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var hs-var">allocTickBox</span></a></span></span><span> </span><span id="local-6989586621681000850"><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000850"><span class="hs-identifier hs-var">boxLabel</span></a></span></span><span> </span><span id="local-6989586621681000849"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000849"><span class="hs-identifier hs-var">countEntries</span></a></span></span><span> </span><span id="local-6989586621681000848"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000848"><span class="hs-identifier hs-var">topOnly</span></a></span></span><span> </span><span id="local-6989586621681000847"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000847"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681000846"><span class="annot"><span class="annottext">TM (HsExpr GhcTc)
</span><a href="#local-6989586621681000846"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1176"></span><span>  </span><span class="annot"><span class="annottext">SrcSpan
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a. SrcSpan -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifGoodTickSrcSpan"><span class="hs-identifier hs-var">ifGoodTickSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000847"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">do</span><span>
</span><span id="line-1177"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621681000845"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000845"><span class="hs-identifier hs-var">fvs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681000844"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681000844"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM (HsExpr GhcTc) -&gt; TM (FreeVars, HsExpr GhcTc)
forall a. TM a -&gt; TM (FreeVars, a)
</span><a href="GHC.HsToCore.Coverage.html#getFreeVars"><span class="hs-identifier hs-var">getFreeVars</span></a></span><span> </span><span class="annot"><span class="annottext">TM (HsExpr GhcTc)
</span><a href="#local-6989586621681000846"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-1178"></span><span>    </span><span id="local-6989586621681000843"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000843"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1179"></span><span>    </span><span id="local-6989586621681000842"><span class="annot"><span class="annottext">Tickish Id
</span><a href="#local-6989586621681000842"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; FreeVars
-&gt; [FilePath]
-&gt; TM (Tickish Id)
</span><a href="GHC.HsToCore.Coverage.html#mkTickish"><span class="hs-identifier hs-var">mkTickish</span></a></span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000850"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000849"><span class="hs-identifier hs-var">countEntries</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000848"><span class="hs-identifier hs-var">topOnly</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000847"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000845"><span class="hs-identifier hs-var">fvs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000843"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1180"></span><span>    </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000847"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XTick GhcTc -&gt; Tickish (IdP GhcTc) -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XTick p -&gt; Tickish (IdP p) -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsTick"><span class="hs-identifier hs-var">HsTick</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTick GhcTc
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Tickish Id
Tickish (IdP GhcTc)
</span><a href="#local-6989586621681000842"><span class="hs-identifier hs-var">tickish</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000847"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681000844"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1181"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">do</span><span>
</span><span id="line-1182"></span><span>    </span><span id="local-6989586621681000839"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681000839"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM (HsExpr GhcTc)
</span><a href="#local-6989586621681000846"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-1183"></span><span>    </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000847"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681000839"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1184"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-1185"></span><span>
</span><span id="line-1186"></span><span class="hs-comment">-- the tick application inherits the source position of its</span><span>
</span><span id="line-1187"></span><span class="hs-comment">-- expression argument to support nested box allocations</span><span>
</span><span id="line-1188"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#allocATickBox"><span class="hs-identifier hs-type">allocATickBox</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#FreeVars"><span class="hs-identifier hs-type">FreeVars</span></a></span><span>
</span><span id="line-1189"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Tickish"><span class="hs-identifier hs-type">Tickish</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1190"></span><span id="allocATickBox"><span class="annot"><span class="annottext">allocATickBox :: BoxLabel
-&gt; Bool -&gt; Bool -&gt; SrcSpan -&gt; FreeVars -&gt; TM (Maybe (Tickish Id))
</span><a href="GHC.HsToCore.Coverage.html#allocATickBox"><span class="hs-identifier hs-var hs-var">allocATickBox</span></a></span></span><span> </span><span id="local-6989586621681000838"><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000838"><span class="hs-identifier hs-var">boxLabel</span></a></span></span><span> </span><span id="local-6989586621681000837"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000837"><span class="hs-identifier hs-var">countEntries</span></a></span></span><span> </span><span id="local-6989586621681000836"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000836"><span class="hs-identifier hs-var">topOnly</span></a></span></span><span>  </span><span id="local-6989586621681000835"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000835"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681000834"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000834"><span class="hs-identifier hs-var">fvs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1191"></span><span>  </span><span class="annot"><span class="annottext">SrcSpan
-&gt; TM (Maybe (Tickish Id))
-&gt; TM (Maybe (Tickish Id))
-&gt; TM (Maybe (Tickish Id))
forall a. SrcSpan -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifGoodTickSrcSpan"><span class="hs-identifier hs-var">ifGoodTickSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000835"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">do</span><span>
</span><span id="line-1192"></span><span>    </span><span class="hs-keyword">let</span><span>
</span><span id="line-1193"></span><span>      </span><span id="local-6989586621681000833"><span class="annot"><span class="annottext">mydecl_path :: [FilePath]
</span><a href="#local-6989586621681000833"><span class="hs-identifier hs-var hs-var">mydecl_path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000838"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1194"></span><span>                      </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#TopLevelBox"><span class="hs-identifier hs-type">TopLevelBox</span></a></span><span> </span><span id="local-6989586621681000832"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000832"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000832"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1195"></span><span>                      </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#LocalBox"><span class="hs-identifier hs-type">LocalBox</span></a></span><span> </span><span id="local-6989586621681000831"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000831"><span class="hs-identifier hs-var">xs</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000831"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1196"></span><span>                      </span><span class="annot"><span class="annottext">BoxLabel
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; [FilePath]
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;allocATickBox&quot;</span></span><span>
</span><span id="line-1197"></span><span>    </span><span id="local-6989586621681000830"><span class="annot"><span class="annottext">Tickish Id
</span><a href="#local-6989586621681000830"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; FreeVars
-&gt; [FilePath]
-&gt; TM (Tickish Id)
</span><a href="GHC.HsToCore.Coverage.html#mkTickish"><span class="hs-identifier hs-var">mkTickish</span></a></span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000838"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000837"><span class="hs-identifier hs-var">countEntries</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000836"><span class="hs-identifier hs-var">topOnly</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000835"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000834"><span class="hs-identifier hs-var">fvs</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000833"><span class="hs-identifier hs-var">mydecl_path</span></a></span><span>
</span><span id="line-1198"></span><span>    </span><span class="annot"><span class="annottext">Maybe (Tickish Id) -&gt; TM (Maybe (Tickish Id))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Tickish Id -&gt; Maybe (Tickish Id)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Tickish Id
</span><a href="#local-6989586621681000830"><span class="hs-identifier hs-var">tickish</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1199"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Tickish Id) -&gt; TM (Maybe (Tickish Id))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Tickish Id)
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1200"></span><span>
</span><span id="line-1201"></span><span>
</span><span id="line-1202"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkTickish"><span class="hs-identifier hs-type">mkTickish</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Name.Occurrence.html#OccEnv"><span class="hs-identifier hs-type">OccEnv</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1203"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Tickish"><span class="hs-identifier hs-type">Tickish</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1204"></span><span id="mkTickish"><span class="annot"><span class="annottext">mkTickish :: BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; FreeVars
-&gt; [FilePath]
-&gt; TM (Tickish Id)
</span><a href="GHC.HsToCore.Coverage.html#mkTickish"><span class="hs-identifier hs-var hs-var">mkTickish</span></a></span></span><span> </span><span id="local-6989586621681000829"><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000829"><span class="hs-identifier hs-var">boxLabel</span></a></span></span><span> </span><span id="local-6989586621681000828"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000828"><span class="hs-identifier hs-var">countEntries</span></a></span></span><span> </span><span id="local-6989586621681000827"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000827"><span class="hs-identifier hs-var">topOnly</span></a></span></span><span> </span><span id="local-6989586621681000826"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000826"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681000825"><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000825"><span class="hs-identifier hs-var">fvs</span></a></span></span><span> </span><span id="local-6989586621681000824"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000824"><span class="hs-identifier hs-var">decl_path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1205"></span><span>
</span><span id="line-1206"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681000823"><span class="annot"><span class="annottext">ids :: [Id]
</span><a href="#local-6989586621681000823"><span class="hs-identifier hs-var hs-var">ids</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Id -&gt; Bool) -&gt; [Id] -&gt; [Id]
forall a. (a -&gt; Bool) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#filter"><span class="hs-identifier hs-var">filter</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; (Id -&gt; Bool) -&gt; Id -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Type -&gt; Bool
Type -&gt; Bool
</span><a href="GHC.Core.Type.html#isUnliftedType"><span class="hs-identifier hs-var">isUnliftedType</span></a></span><span> </span><span class="annot"><span class="annottext">(Type -&gt; Bool) -&gt; (Id -&gt; Type) -&gt; Id -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; Type
</span><a href="GHC.Types.Id.html#idType"><span class="hs-identifier hs-var">idType</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Id] -&gt; [Id]) -&gt; [Id] -&gt; [Id]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars -&gt; [Id]
forall a. OccEnv a -&gt; [a]
</span><a href="GHC.Types.Name.Occurrence.html#occEnvElts"><span class="hs-identifier hs-var">occEnvElts</span></a></span><span> </span><span class="annot"><span class="annottext">FreeVars
</span><a href="#local-6989586621681000825"><span class="hs-identifier hs-var">fvs</span></a></span><span>
</span><span id="line-1207"></span><span>          </span><span class="hs-comment">-- unlifted types cause two problems here:</span><span>
</span><span id="line-1208"></span><span>          </span><span class="hs-comment">--   * we can't bind them  at the GHCi prompt</span><span>
</span><span id="line-1209"></span><span>          </span><span class="hs-comment">--     (bindLocalsAtBreakpoint already filters them out),</span><span>
</span><span id="line-1210"></span><span>          </span><span class="hs-comment">--   * the simplifier might try to substitute a literal for</span><span>
</span><span id="line-1211"></span><span>          </span><span class="hs-comment">--     the Id, and we can't handle that.</span><span>
</span><span id="line-1212"></span><span>
</span><span id="line-1213"></span><span>      </span><span id="local-6989586621681000819"><span class="annot"><span class="annottext">me :: MixEntry_
</span><a href="#local-6989586621681000819"><span class="hs-identifier hs-var hs-var">me</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000826"><span class="hs-identifier hs-var">pos</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000824"><span class="hs-identifier hs-var">decl_path</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(Id -&gt; OccName) -&gt; [Id] -&gt; [OccName]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; OccName
</span><a href="GHC.Types.Name.html#nameOccName"><span class="hs-identifier hs-var">nameOccName</span></a></span><span class="annot"><span class="annottext">(Name -&gt; OccName) -&gt; (Id -&gt; Name) -&gt; Id -&gt; OccName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Id.html#idName"><span class="hs-identifier hs-var">idName</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621681000823"><span class="hs-identifier hs-var">ids</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BoxLabel
</span><a href="#local-6989586621681000829"><span class="hs-identifier hs-var">boxLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1214"></span><span>
</span><span id="line-1215"></span><span>      </span><span id="local-6989586621681000818"><span class="annot"><span class="annottext">cc_name :: FilePath
</span><a href="#local-6989586621681000818"><span class="hs-identifier hs-var hs-var">cc_name</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000827"><span class="hs-identifier hs-var">topOnly</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; FilePath
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#head"><span class="hs-identifier hs-var">head</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000824"><span class="hs-identifier hs-var">decl_path</span></a></span><span>
</span><span id="line-1216"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; FilePath
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; [FilePath] -&gt; [FilePath]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier hs-var">intersperse</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;.&quot;</span></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621681000824"><span class="hs-identifier hs-var">decl_path</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1217"></span><span>
</span><span id="line-1218"></span><span>  </span><span id="local-6989586621681000816"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000816"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM DynFlags
forall (m :: * -&gt; *). HasDynFlags m =&gt; m DynFlags
</span><a href="GHC.Driver.Session.html#getDynFlags"><span class="hs-identifier hs-var">getDynFlags</span></a></span><span>
</span><span id="line-1219"></span><span>  </span><span id="local-6989586621681000815"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000815"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1220"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickishType
</span><a href="GHC.HsToCore.Coverage.html#tickishType"><span class="hs-identifier hs-var hs-var">tickishType</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000815"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1221"></span><span>    </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#HpcTicks"><span class="hs-identifier hs-var">HpcTicks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Int -&gt; Tickish Id
forall id. Module -&gt; Int -&gt; Tickish id
</span><a href="GHC.Core.html#HpcTick"><span class="hs-identifier hs-var">HpcTick</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; Module
</span><a href="GHC.HsToCore.Coverage.html#this_mod"><span class="hs-identifier hs-var hs-var">this_mod</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000815"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Tickish Id) -&gt; TM Int -&gt; TM (Tickish Id)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; TM Int
</span><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-var">addMixEntry</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_
</span><a href="#local-6989586621681000819"><span class="hs-identifier hs-var">me</span></a></span><span>
</span><span id="line-1222"></span><span>
</span><span id="line-1223"></span><span>    </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#ProfNotes"><span class="hs-identifier hs-var">ProfNotes</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1224"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681000813"><span class="annot"><span class="annottext">nm :: FastString
</span><a href="#local-6989586621681000813"><span class="hs-identifier hs-var hs-var">nm</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastString"><span class="hs-identifier hs-var">mkFastString</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681000818"><span class="hs-identifier hs-var">cc_name</span></a></span><span>
</span><span id="line-1225"></span><span>      </span><span id="local-6989586621681000812"><span class="annot"><span class="annottext">CCFlavour
</span><a href="#local-6989586621681000812"><span class="hs-identifier hs-var">flavour</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CostCentreIndex -&gt; CCFlavour
</span><a href="GHC.Types.CostCentre.html#HpcCC"><span class="hs-identifier hs-var">HpcCC</span></a></span><span> </span><span class="annot"><span class="annottext">(CostCentreIndex -&gt; CCFlavour)
-&gt; TM CostCentreIndex -&gt; TM CCFlavour
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; TM CostCentreIndex
</span><a href="GHC.HsToCore.Coverage.html#getCCIndexM"><span class="hs-identifier hs-var">getCCIndexM</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681000813"><span class="hs-identifier hs-var">nm</span></a></span><span>
</span><span id="line-1226"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681000810"><span class="annot"><span class="annottext">cc :: CostCentre
</span><a href="#local-6989586621681000810"><span class="hs-identifier hs-var hs-var">cc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Module -&gt; SrcSpan -&gt; CCFlavour -&gt; CostCentre
</span><a href="GHC.Types.CostCentre.html#mkUserCC"><span class="hs-identifier hs-var">mkUserCC</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681000813"><span class="hs-identifier hs-var">nm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; Module
</span><a href="GHC.HsToCore.Coverage.html#this_mod"><span class="hs-identifier hs-var hs-var">this_mod</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000815"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000826"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">CCFlavour
</span><a href="#local-6989586621681000812"><span class="hs-identifier hs-var">flavour</span></a></span><span>
</span><span id="line-1227"></span><span>          </span><span id="local-6989586621681000808"><span class="annot"><span class="annottext">count :: Bool
</span><a href="#local-6989586621681000808"><span class="hs-identifier hs-var hs-var">count</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000828"><span class="hs-identifier hs-var">countEntries</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">GeneralFlag -&gt; DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#gopt"><span class="hs-identifier hs-var">gopt</span></a></span><span> </span><span class="annot"><span class="annottext">GeneralFlag
</span><a href="GHC.Driver.Flags.html#Opt_ProfCountEntries"><span class="hs-identifier hs-var">Opt_ProfCountEntries</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681000816"><span class="hs-identifier hs-var">dflags</span></a></span><span>
</span><span id="line-1228"></span><span>      </span><span class="annot"><span class="annottext">Tickish Id -&gt; TM (Tickish Id)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Tickish Id -&gt; TM (Tickish Id)) -&gt; Tickish Id -&gt; TM (Tickish Id)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CostCentre -&gt; Bool -&gt; Bool -&gt; Tickish Id
forall id. CostCentre -&gt; Bool -&gt; Bool -&gt; Tickish id
</span><a href="GHC.Core.html#ProfNote"><span class="hs-identifier hs-var">ProfNote</span></a></span><span> </span><span class="annot"><span class="annottext">CostCentre
</span><a href="#local-6989586621681000810"><span class="hs-identifier hs-var">cc</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681000808"><span class="hs-identifier hs-var">count</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-comment">{-scopes-}</span><span>
</span><span id="line-1229"></span><span>
</span><span id="line-1230"></span><span>    </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#Breakpoints"><span class="hs-identifier hs-var">Breakpoints</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; [Id] -&gt; Tickish Id
forall id. Int -&gt; [id] -&gt; Tickish id
</span><a href="GHC.Core.html#Breakpoint"><span class="hs-identifier hs-var">Breakpoint</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; [Id] -&gt; Tickish Id) -&gt; TM Int -&gt; TM ([Id] -&gt; Tickish Id)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; TM Int
</span><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-var">addMixEntry</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_
</span><a href="#local-6989586621681000819"><span class="hs-identifier hs-var">me</span></a></span><span> </span><span class="annot"><span class="annottext">TM ([Id] -&gt; Tickish Id) -&gt; TM [Id] -&gt; TM (Tickish Id)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Id] -&gt; TM [Id]
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621681000823"><span class="hs-identifier hs-var">ids</span></a></span><span>
</span><span id="line-1231"></span><span>
</span><span id="line-1232"></span><span>    </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#SourceNotes"><span class="hs-identifier hs-var">SourceNotes</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621681000804"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000804"><span class="hs-identifier hs-var">pos'</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000826"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-1233"></span><span>      </span><span class="annot"><span class="annottext">Tickish Id -&gt; TM (Tickish Id)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Tickish Id -&gt; TM (Tickish Id)) -&gt; Tickish Id -&gt; TM (Tickish Id)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FilePath -&gt; Tickish Id
forall id. RealSrcSpan -&gt; FilePath -&gt; Tickish id
</span><a href="GHC.Core.html#SourceNote"><span class="hs-identifier hs-var">SourceNote</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000804"><span class="hs-identifier hs-var">pos'</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681000818"><span class="hs-identifier hs-var">cc_name</span></a></span><span>
</span><span id="line-1234"></span><span>
</span><span id="line-1235"></span><span>    </span><span id="local-6989586621681000802"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681000802"><span class="hs-identifier hs-var">_otherwise</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; TM (Tickish Id)
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;mkTickish: bad source span!&quot;</span></span><span>
</span><span id="line-1236"></span><span>
</span><span id="line-1237"></span><span>
</span><span id="line-1238"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#allocBinTickBox"><span class="hs-identifier hs-type">allocBinTickBox</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1239"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1240"></span><span id="allocBinTickBox"><span class="annot"><span class="annottext">allocBinTickBox :: (Bool -&gt; BoxLabel)
-&gt; SrcSpan -&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocBinTickBox"><span class="hs-identifier hs-var hs-var">allocBinTickBox</span></a></span></span><span> </span><span id="local-6989586621681000801"><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681000801"><span class="hs-identifier hs-var">boxLabel</span></a></span></span><span> </span><span id="local-6989586621681000800"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000800"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681000799"><span class="annot"><span class="annottext">TM (HsExpr GhcTc)
</span><a href="#local-6989586621681000799"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1241"></span><span>  </span><span id="local-6989586621681000798"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000798"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1242"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TickTransEnv -&gt; TickishType
</span><a href="GHC.HsToCore.Coverage.html#tickishType"><span class="hs-identifier hs-var hs-var">tickishType</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000798"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1243"></span><span>    </span><span class="annot"><span class="annottext">TickishType
</span><a href="GHC.HsToCore.Coverage.html#HpcTicks"><span class="hs-identifier hs-var">HpcTicks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621681000797"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000797"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(HsExpr GhcTc -&gt; LHsExpr GhcTc)
-&gt; TM (HsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000800"><span class="hs-identifier hs-var">pos</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">TM (HsExpr GhcTc)
</span><a href="#local-6989586621681000799"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-1244"></span><span>                   </span><span class="annot"><span class="annottext">SrcSpan
-&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc) -&gt; TM (LHsExpr GhcTc)
forall a. SrcSpan -&gt; TM a -&gt; TM a -&gt; TM a
</span><a href="GHC.HsToCore.Coverage.html#ifGoodTickSrcSpan"><span class="hs-identifier hs-var">ifGoodTickSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000800"><span class="hs-identifier hs-var">pos</span></a></span><span>
</span><span id="line-1245"></span><span>                     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; BoxLabel)
-&gt; SrcSpan -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#mkBinTickBoxHpc"><span class="hs-identifier hs-var">mkBinTickBoxHpc</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681000801"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000800"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000797"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1246"></span><span>                     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000797"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1247"></span><span>    </span><span id="local-6989586621681000795"><span class="annot"><span class="annottext">TickishType
</span><a href="#local-6989586621681000795"><span class="hs-identifier hs-var">_other</span></a></span></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">BoxLabel
-&gt; Bool
-&gt; Bool
-&gt; SrcSpan
-&gt; TM (HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#allocTickBox"><span class="hs-identifier hs-var">allocTickBox</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000800"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">TM (HsExpr GhcTc)
</span><a href="#local-6989586621681000799"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-1248"></span><span>
</span><span id="line-1249"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkBinTickBoxHpc"><span class="hs-identifier hs-type">mkBinTickBoxHpc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-1250"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.HsToCore.Coverage.html#TM"><span class="hs-identifier hs-type">TM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1251"></span><span id="mkBinTickBoxHpc"><span class="annot"><span class="annottext">mkBinTickBoxHpc :: (Bool -&gt; BoxLabel)
-&gt; SrcSpan -&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
</span><a href="GHC.HsToCore.Coverage.html#mkBinTickBoxHpc"><span class="hs-identifier hs-var hs-var">mkBinTickBoxHpc</span></a></span></span><span> </span><span id="local-6989586621681000794"><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681000794"><span class="hs-identifier hs-var">boxLabel</span></a></span></span><span> </span><span id="local-6989586621681000793"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000793"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621681000792"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000792"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1252"></span><span>  </span><span id="local-6989586621681000791"><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000791"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TM TickTransEnv
</span><a href="GHC.HsToCore.Coverage.html#getEnv"><span class="hs-identifier hs-var">getEnv</span></a></span><span>
</span><span id="line-1253"></span><span>  </span><span id="local-6989586621681000790"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681000790"><span class="hs-identifier hs-var">binTick</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">XBinTick GhcTc -&gt; Int -&gt; Int -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XBinTick p -&gt; Int -&gt; Int -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsBinTick"><span class="hs-identifier hs-var">HsBinTick</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XBinTick GhcTc
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-1254"></span><span>    </span><span class="annot"><span class="annottext">(Int -&gt; Int -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM Int -&gt; TM (Int -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; TM Int
</span><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-var">addMixEntry</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000793"><span class="hs-identifier hs-var">pos</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000791"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681000794"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>
</span><span id="line-1255"></span><span>    </span><span class="annot"><span class="annottext">TM (Int -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM Int -&gt; TM (LHsExpr GhcTc -&gt; HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; TM Int
</span><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-var">addMixEntry</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000793"><span class="hs-identifier hs-var">pos</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000791"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="#local-6989586621681000794"><span class="hs-identifier hs-var">boxLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>
</span><span id="line-1256"></span><span>    </span><span class="annot"><span class="annottext">TM (LHsExpr GhcTc -&gt; HsExpr GhcTc)
-&gt; TM (LHsExpr GhcTc) -&gt; TM (HsExpr GhcTc)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621681000792"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-1257"></span><span>  </span><span id="local-6989586621681000789"><span class="annot"><span class="annottext">Tickish Id
</span><a href="#local-6989586621681000789"><span class="hs-identifier hs-var">tick</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Int -&gt; Tickish Id
forall id. Module -&gt; Int -&gt; Tickish id
</span><a href="GHC.Core.html#HpcTick"><span class="hs-identifier hs-var">HpcTick</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TickTransEnv -&gt; Module
</span><a href="GHC.HsToCore.Coverage.html#this_mod"><span class="hs-identifier hs-var hs-var">this_mod</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000791"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1258"></span><span>    </span><span class="annot"><span class="annottext">(Int -&gt; Tickish Id) -&gt; TM Int -&gt; TM (Tickish Id)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">MixEntry_ -&gt; TM Int
</span><a href="GHC.HsToCore.Coverage.html#addMixEntry"><span class="hs-identifier hs-var">addMixEntry</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000793"><span class="hs-identifier hs-var">pos</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">TickTransEnv -&gt; [FilePath]
</span><a href="GHC.HsToCore.Coverage.html#declPath"><span class="hs-identifier hs-var hs-var">declPath</span></a></span><span> </span><span class="annot"><span class="annottext">TickTransEnv
</span><a href="#local-6989586621681000791"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span class="annot"><span class="annottext">Bool -&gt; BoxLabel
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#ExpBox"><span class="hs-identifier hs-var">ExpBox</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>
</span><span id="line-1259"></span><span>  </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc))
-&gt; LHsExpr GhcTc -&gt; TM (LHsExpr GhcTc)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000793"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">(HsExpr GhcTc -&gt; LHsExpr GhcTc) -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XTick GhcTc -&gt; Tickish (IdP GhcTc) -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XTick p -&gt; Tickish (IdP p) -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsTick"><span class="hs-identifier hs-var">HsTick</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTick GhcTc
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Tickish Id
Tickish (IdP GhcTc)
</span><a href="#local-6989586621681000789"><span class="hs-identifier hs-var">tick</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000793"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621681000790"><span class="hs-identifier hs-var">binTick</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1260"></span><span>
</span><span id="line-1261"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkHpcPos"><span class="hs-identifier hs-type">mkHpcPos</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Util.html#HpcPos"><span class="hs-identifier hs-type">HpcPos</span></a></span><span>
</span><span id="line-1262"></span><span id="mkHpcPos"><span class="annot"><span class="annottext">mkHpcPos :: SrcSpan -&gt; HpcPos
</span><a href="GHC.HsToCore.Coverage.html#mkHpcPos"><span class="hs-identifier hs-var hs-var">mkHpcPos</span></a></span></span><span> </span><span id="local-6989586621681000788"><span class="annot"><span class="annottext">pos :: SrcSpan
</span><a href="#local-6989586621681000788"><span class="hs-identifier hs-var">pos</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621681000787"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000787"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-1263"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#isGoodSrcSpan%27"><span class="hs-identifier hs-var">isGoodSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621681000788"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int, Int, Int, Int) -&gt; HpcPos
</span><a href="../../hpc/src/Trace.Hpc.Util.html#toHpcPos"><span class="hs-identifier hs-var">toHpcPos</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000787"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1264"></span><span>                                    </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000787"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1265"></span><span>                                    </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000787"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1266"></span><span>                                    </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681000787"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>
</span><span id="line-1267"></span><span>                              </span><span class="hs-comment">-- the end column of a SrcSpan is one</span><span>
</span><span id="line-1268"></span><span>                              </span><span class="hs-comment">-- greater than the last column of the</span><span>
</span><span id="line-1269"></span><span>                              </span><span class="hs-comment">-- span (see SrcLoc), whereas HPC</span><span>
</span><span id="line-1270"></span><span>                              </span><span class="hs-comment">-- expects to the column range to be</span><span>
</span><span id="line-1271"></span><span>                              </span><span class="hs-comment">-- inclusive, hence we subtract one above.</span><span>
</span><span id="line-1272"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mkHpcPos"><span class="hs-identifier hs-var">mkHpcPos</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; HpcPos
forall a. FilePath -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;bad source span; expected such spans to be filtered out&quot;</span></span><span>
</span><span id="line-1273"></span><span>
</span><span id="line-1274"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-type">hpcSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-1275"></span><span id="hpcSrcSpan"><span class="annot"><span class="annottext">hpcSrcSpan :: SrcSpan
</span><a href="GHC.HsToCore.Coverage.html#hpcSrcSpan"><span class="hs-identifier hs-var hs-var">hpcSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkGeneralSrcSpan"><span class="hs-identifier hs-var">mkGeneralSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;Haskell Program Coverage internals&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-1276"></span><span>
</span><span id="line-1277"></span><span id="local-6989586621681002540"><span class="annot"><a href="GHC.HsToCore.Coverage.html#matchesOneOfMany"><span class="hs-identifier hs-type">matchesOneOfMany</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002540"><span class="hs-identifier hs-type">body</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span><span>
</span><span id="line-1278"></span><span id="matchesOneOfMany"><span class="annot"><span class="annottext">matchesOneOfMany :: forall body. [LMatch GhcTc body] -&gt; Bool
</span><a href="GHC.HsToCore.Coverage.html#matchesOneOfMany"><span class="hs-identifier hs-var hs-var">matchesOneOfMany</span></a></span></span><span> </span><span id="local-6989586621681000775"><span class="annot"><span class="annottext">[LMatch GhcTc body]
</span><a href="#local-6989586621681000775"><span class="hs-identifier hs-var">lmatches</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Int] -&gt; Int
forall (t :: * -&gt; *) a. (Foldable t, Num a) =&gt; t a -&gt; a
</span><a href="../../base/src/Data.Foldable.html#sum"><span class="hs-identifier hs-var">sum</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LMatch GhcTc body -&gt; Int) -&gt; [LMatch GhcTc body] -&gt; [Int]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LMatch GhcTc body -&gt; Int
forall body. LMatch GhcTc body -&gt; Int
</span><a href="#local-6989586621681000773"><span class="hs-identifier hs-var">matchCount</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcTc body]
</span><a href="#local-6989586621681000775"><span class="hs-identifier hs-var">lmatches</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-1279"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1280"></span><span>        </span><span id="local-6989586621681002364"><span class="annot"><a href="#local-6989586621681000773"><span class="hs-identifier hs-type">matchCount</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681002364"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span></span><span>
</span><span id="line-1281"></span><span>        </span><span id="local-6989586621681000773"><span class="annot"><span class="annottext">matchCount :: forall body. LMatch GhcTc body -&gt; Int
</span><a href="#local-6989586621681000773"><span class="hs-identifier hs-var hs-var">matchCount</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_grhss :: forall p body. Match p body -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">XCGRHSs GhcTc body
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681000771"><span class="annot"><span class="annottext">[LGRHS GhcTc body]
</span><a href="#local-6989586621681000771"><span class="hs-identifier hs-var">grhss</span></a></span></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsLocalBinds GhcTc)
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1282"></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc body] -&gt; Int
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[LGRHS GhcTc body]
</span><a href="#local-6989586621681000771"><span class="hs-identifier hs-var">grhss</span></a></span><span>
</span><span id="line-1283"></span><span>
</span><span id="line-1284"></span><span class="hs-keyword">type</span><span> </span><span id="MixEntry_"><span class="annot"><a href="GHC.HsToCore.Coverage.html#MixEntry_"><span class="hs-identifier hs-var">MixEntry_</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.Occurrence.html#OccName"><span class="hs-identifier hs-type">OccName</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#BoxLabel"><span class="hs-identifier hs-type">BoxLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1285"></span><span>
</span><span id="line-1286"></span><span class="hs-comment">-- For the hash value, we hash everything: the file name,</span><span>
</span><span id="line-1287"></span><span class="hs-comment">--  the timestamp of the original source file, the tab stop,</span><span>
</span><span id="line-1288"></span><span class="hs-comment">--  and the mix entries. We cheat, and hash the show'd string.</span><span>
</span><span id="line-1289"></span><span class="hs-comment">-- This hash only has to be hashed at Mix creation time,</span><span>
</span><span id="line-1290"></span><span class="hs-comment">-- and is for sanity checking only.</span><span>
</span><span id="line-1291"></span><span>
</span><span id="line-1292"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#mixHash"><span class="hs-identifier hs-type">mixHash</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../time/src/Data.Time.Clock.Internal.UTCTime.html#UTCTime"><span class="hs-identifier hs-type">UTCTime</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../hpc/src/Trace.Hpc.Mix.html#MixEntry"><span class="hs-identifier hs-type">MixEntry</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-1293"></span><span id="mixHash"><span class="annot"><span class="annottext">mixHash :: FilePath -&gt; UTCTime -&gt; Int -&gt; [(HpcPos, BoxLabel)] -&gt; Int
</span><a href="GHC.HsToCore.Coverage.html#mixHash"><span class="hs-identifier hs-var hs-var">mixHash</span></a></span></span><span> </span><span id="local-6989586621681000769"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681000769"><span class="hs-identifier hs-var">file</span></a></span></span><span> </span><span id="local-6989586621681000768"><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621681000768"><span class="hs-identifier hs-var">tm</span></a></span></span><span> </span><span id="local-6989586621681000767"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000767"><span class="hs-identifier hs-var">tabstop</span></a></span></span><span> </span><span id="local-6989586621681000766"><span class="annot"><span class="annottext">[(HpcPos, BoxLabel)]
</span><a href="#local-6989586621681000766"><span class="hs-identifier hs-var">entries</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int32 -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int32 -&gt; Int) -&gt; Int32 -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; Int32
</span><a href="GHC.Utils.Misc.html#hashString"><span class="hs-identifier hs-var">hashString</span></a></span><span>
</span><span id="line-1294"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Mix -&gt; FilePath
forall a. Show a =&gt; a -&gt; FilePath
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">(Mix -&gt; FilePath) -&gt; Mix -&gt; FilePath
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; UTCTime -&gt; Hash -&gt; Int -&gt; [(HpcPos, BoxLabel)] -&gt; Mix
</span><a href="../../hpc/src/Trace.Hpc.Mix.html#Mix"><span class="hs-identifier hs-var">Mix</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621681000769"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621681000768"><span class="hs-identifier hs-var">tm</span></a></span><span> </span><span class="annot"><span class="annottext">Hash
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000767"><span class="hs-identifier hs-var">tabstop</span></a></span><span> </span><span class="annot"><span class="annottext">[(HpcPos, BoxLabel)]
</span><a href="#local-6989586621681000766"><span class="hs-identifier hs-var">entries</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1295"></span><span>
</span><span id="line-1296"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
*              initialisation
*                                                                      *
************************************************************************

Each module compiled with -fhpc declares an initialisation function of
the form `hpc_init_&lt;module&gt;()`, which is emitted into the _stub.c file
and annotated with __attribute__((constructor)) so that it gets
executed at startup time.

The function's purpose is to call hs_hpc_module to register this
module with the RTS, and it looks something like this:

static void hpc_init_Main(void) __attribute__((constructor));
static void hpc_init_Main(void)
{extern StgWord64 _hpc_tickboxes_Main_hpc[];
 hs_hpc_module(&quot;Main&quot;,8,1150288664,_hpc_tickboxes_Main_hpc);}
-}</span><span>
</span><span id="line-1316"></span><span>
</span><span id="line-1317"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#hpcInitCode"><span class="hs-identifier hs-type">hpcInitCode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HpcInfo"><span class="hs-identifier hs-type">HpcInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1318"></span><span id="hpcInitCode"><span class="annot"><span class="annottext">hpcInitCode :: Module -&gt; HpcInfo -&gt; SDoc
</span><a href="GHC.HsToCore.Coverage.html#hpcInitCode"><span class="hs-identifier hs-var hs-var">hpcInitCode</span></a></span></span><span> </span><span class="annot"><span class="annottext">Module
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Driver.Types.html#NoHpcInfo"><span class="hs-identifier hs-type">NoHpcInfo</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">Outputable.empty</span></a></span><span>
</span><span id="line-1319"></span><span class="annot"><a href="GHC.HsToCore.Coverage.html#hpcInitCode"><span class="hs-identifier hs-var">hpcInitCode</span></a></span><span> </span><span id="local-6989586621681000761"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Driver.Types.html#HpcInfo"><span class="hs-identifier hs-type">HpcInfo</span></a></span><span> </span><span id="local-6989586621681000760"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000760"><span class="hs-identifier hs-var">tickCount</span></a></span></span><span> </span><span id="local-6989586621681000759"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000759"><span class="hs-identifier hs-var">hashNo</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1320"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span>
</span><span id="line-1321"></span><span>    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;static void hpc_init_&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span><span>
</span><span id="line-1322"></span><span>         </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;(void) __attribute__((constructor));&quot;</span></span><span>
</span><span id="line-1323"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;static void hpc_init_&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;(void)&quot;</span></span><span>
</span><span id="line-1324"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1325"></span><span>        </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;extern StgWord64 &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681000754"><span class="hs-identifier hs-var">tickboxes</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-1326"></span><span>               </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;[]&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-var">semi</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1327"></span><span>        </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;hs_hpc_module&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-1328"></span><span>          </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1329"></span><span>              </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681000747"><span class="hs-identifier hs-var">full_name_str</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1330"></span><span>              </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000760"><span class="hs-identifier hs-var">tickCount</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- really StgWord32</span><span>
</span><span id="line-1331"></span><span>              </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681000759"><span class="hs-identifier hs-var">hashNo</span></a></span><span class="hs-special">,</span><span>    </span><span class="hs-comment">-- really StgWord32</span><span>
</span><span id="line-1332"></span><span>              </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681000754"><span class="hs-identifier hs-var">tickboxes</span></a></span><span>
</span><span id="line-1333"></span><span>            </span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-var">semi</span></a></span><span>
</span><span id="line-1334"></span><span>       </span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1335"></span><span>    </span><span class="hs-special">]</span><span>
</span><span id="line-1336"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1337"></span><span>    </span><span id="local-6989586621681000754"><span class="annot"><span class="annottext">tickboxes :: SDoc
</span><a href="#local-6989586621681000754"><span class="hs-identifier hs-var hs-var">tickboxes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkHpcTicksLabel"><span class="hs-identifier hs-var">mkHpcTicksLabel</span></a></span><span> </span><span class="annot"><span class="annottext">(Module -&gt; CLabel) -&gt; Module -&gt; CLabel
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1338"></span><span>
</span><span id="line-1339"></span><span>    </span><span id="local-6989586621681000744"><span class="annot"><span class="annottext">module_name :: SDoc
</span><a href="#local-6989586621681000744"><span class="hs-identifier hs-var hs-var">module_name</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Word8 -&gt; SDoc) -&gt; [Word8] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span class="annot"><span class="annottext">(FilePath -&gt; SDoc) -&gt; (Word8 -&gt; FilePath) -&gt; Word8 -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span class="annot"><span class="annottext">Word8 -&gt; FilePath
</span><a href="GHC.Utils.Misc.html#charToC"><span class="hs-identifier hs-var">charToC</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Word8] -&gt; [SDoc]) -&gt; [Word8] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; [Word8]
</span><a href="../../bytestring/src/Data.ByteString.html#unpack"><span class="hs-identifier hs-var">BS.unpack</span></a></span><span> </span><span class="annot"><span class="annottext">(ByteString -&gt; [Word8]) -&gt; ByteString -&gt; [Word8]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-1340"></span><span>                         </span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModuleName -&gt; FastString
</span><a href="GHC.Unit.Module.Name.html#moduleNameFS"><span class="hs-identifier hs-var">moduleNameFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1341"></span><span>    </span><span id="local-6989586621681000739"><span class="annot"><span class="annottext">package_name :: SDoc
</span><a href="#local-6989586621681000739"><span class="hs-identifier hs-var hs-var">package_name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Word8 -&gt; SDoc) -&gt; [Word8] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span class="annot"><span class="annottext">(FilePath -&gt; SDoc) -&gt; (Word8 -&gt; FilePath) -&gt; Word8 -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span class="annot"><span class="annottext">Word8 -&gt; FilePath
</span><a href="GHC.Utils.Misc.html#charToC"><span class="hs-identifier hs-var">charToC</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Word8] -&gt; [SDoc]) -&gt; [Word8] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; [Word8]
</span><a href="../../bytestring/src/Data.ByteString.html#unpack"><span class="hs-identifier hs-var">BS.unpack</span></a></span><span> </span><span class="annot"><span class="annottext">(ByteString -&gt; [Word8]) -&gt; ByteString -&gt; [Word8]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-1342"></span><span>                         </span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var">unitFS</span></a></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1343"></span><span>    </span><span id="local-6989586621681000747"><span class="annot"><span class="annottext">full_name_str :: SDoc
</span><a href="#local-6989586621681000747"><span class="hs-identifier hs-var hs-var">full_name_str</span></a></span></span><span>
</span><span id="line-1344"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681000761"><span class="hs-identifier hs-var">this_mod</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unit -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#mainUnit"><span class="hs-identifier hs-var">mainUnit</span></a></span><span>
</span><span id="line-1345"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681000744"><span class="hs-identifier hs-var">module_name</span></a></span><span>
</span><span id="line-1346"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-1347"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681000739"><span class="hs-identifier hs-var">package_name</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'/'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681000744"><span class="hs-identifier hs-var">module_name</span></a></span><span>
</span><span id="line-1348"></span></pre></body></html>